打印
[方案相关]

使用小华半导体MCU实现LED闪烁控制的简单应用

[复制链接]
42|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
Bblythe|  楼主 | 2024-10-5 14:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

最近在玩小华半导体的MCU,感觉非常适合一些简单的嵌入式项目。今天分享一个利用小华MCU实现LED闪烁控制的简单代码。这个例子非常适合初学者练手,特别是在了解基本GPIO控制时。

下面是完整代码,它会控制一颗LED以1秒的间隔闪烁:
#include "xh32f0xx.h"  // 小华MCU的相关头文件

void delay_ms(uint32_t delay)
{
    for(uint32_t i = 0; i < delay * 800; i++) // 简单延时函数
    {
        __NOP();
    }
}

int main(void)
{
    // 初始化GPIO引脚
    XH_GPIO_InitTypeDef GPIO_InitStructure;

    // 启用GPIO时钟
    RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);

    // 设置GPIO为输出模式
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5; // 假设LED连接在PA5
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
    XH_GPIO_Init(GPIOA, &GPIO_InitStructure);

    while(1)
    {
        // 反转LED状态
        GPIOA->ODR ^= GPIO_Pin_5;

        // 延时1秒
        delay_ms(1000);
    }
}

这个代码的工作原理非常简单,通过配置GPIO引脚为输出模式,并在主循环中反转LED状态,实现LED的闪烁效果。使用delay_ms函数做延时,控制LED每隔1秒翻转一次。

小华MCU有很多有趣的功能,非常适合做一些基础项目。如果你也是刚开始学习嵌入式开发,这个例子应该会帮助你快速上手。希望对大家有帮助!

使用特权

评论回复
沙发
公羊子丹| | 2024-10-5 14:21 | 只看该作者
这个代码真简单实用,刚好可以拿来测试我的开发板,感谢分享!

使用特权

评论回复
板凳
周半梅| | 2024-10-5 14:21 | 只看该作者
我之前一直在找这种入门级的例子,终于找到了,太及时了!

使用特权

评论回复
地板
帛灿灿| | 2024-10-5 14:22 | 只看该作者
小华MCU看起来还不错啊,打算买几片试试,这个例子先收藏了!

使用特权

评论回复
5
童雨竹| | 2024-10-5 14:22 | 只看该作者
LED闪烁是经典的入门项目,但每次看到都觉得很有成就感哈哈。

使用特权

评论回复
6
万图| | 2024-10-5 14:22 | 只看该作者
这个延时函数感觉有点粗糙,时间长了会不准,有没有更精确的推荐?

使用特权

评论回复
7
Wordsworth| | 2024-10-5 14:23 | 只看该作者
没想到小华MCU这么好用,之前一直用ST的MCU,看来可以换个品牌试试了。

使用特权

评论回复
8
Bblythe|  楼主 | 2024-10-5 14:23 | 只看该作者
PA5引脚上搞LED闪烁确实是经典方案,直接上手一试没问题!

使用特权

评论回复
9
Pulitzer| | 2024-10-5 14:23 | 只看该作者
不错的代码,简洁明了,适合初学者入门!

使用特权

评论回复
10
Uriah| | 2024-10-5 14:23 | 只看该作者
有没有带PWM的版本?我想试试让LED逐渐变亮变暗!

使用特权

评论回复
11
Clyde011| | 2024-10-5 14:24 | 只看该作者
这片MCU的功耗表现怎么样?感觉小项目挺适合用的。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

23

主题

3536

帖子

0

粉丝