打印
[应用方案]

基于新定义MCU的LED闪烁应用:从零开始编写简单代码

[复制链接]
301|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
童雨竹|  楼主 | 2024-10-2 15:38 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近,我拿到了新定义(NewDefine)MCU的开发板,决定写一个简单的LED闪烁程序来测试一下这个MCU的基本功能。新定义MCU在性能和价格方面都有很好的平衡,适合各种小型嵌入式项目。我这次用的是它们的低功耗型号,下面分享下我的编程过程。

准备工作
  • 开发环境:我使用的是官方推荐的NewDefine IDE,这个IDE对新定义MCU的支持非常友好,内置了很多代码模板。
  • 硬件:一块NewDefine MCU开发板和一个LED(连接在GPIO引脚上)。
  • 编译器:使用的是NewDefine提供的GCC编译器,编译效率还不错。

代码实现这次的目标是通过GPIO控制LED实现简单的闪烁功能,下面是核心代码:

#include "newdefine.h"

// 定义LED连接的GPIO引脚
#define LED_PIN GPIO_PIN_5
#define LED_PORT GPIOA

void delay_ms(uint32_t ms) {
    // 简单的延时函数
    volatile uint32_t count = ms * 1000;
    while(count--) {
        __NOP();
    }
}

int main(void) {
    // 初始化MCU系统
    SystemInit();
   
    // 启用GPIOA的时钟
    RCC->AHB1ENR |= RCC_AHB1ENR_GPIOAEN;

    // 配置GPIOA PIN 5为输出模式
    LED_PORT->MODER |= (1 << (LED_PIN * 2));

    while (1) {
        // 点亮LED
        LED_PORT->ODR |= LED_PIN;
        delay_ms(500); // 延时500毫秒

        // 熄灭LED
        LED_PORT->ODR &= ~LED_PIN;
        delay_ms(500); // 延时500毫秒
    }
}

代码讲解
  • 初始化系统:首先通过SystemInit()函数初始化MCU的时钟系统。
  • GPIO配置:通过设置GPIOA的时钟使能和引脚模式,把PA5设置为输出模式,这里我们连接了LED。
  • LED控制:使用简单的位操作对ODR寄存器进行设置,通过OR操作点亮LED,通过AND操作熄灭LED。
  • 延时函数:为了控制LED闪烁的速度,我写了一个简易的延时函数,通过循环实现。

应用场景这个例子虽然简单,但在实际应用中,可以用于调试、状态指示灯等功能。随着项目复杂度的增加,LED控制可以结合定时器和中断等功能,实现更复杂的控制逻辑。

总结这次的NewDefine MCU体验非常不错,开发环境和硬件资源都比较丰富。简单的GPIO控制非常直观,适合刚入门的开发者。如果大家也想试试新定义的MCU,可以从这个简单的项目开始,逐步探索更多高级功能。

使用特权

评论回复
沙发
公羊子丹| | 2024-10-2 15:38 | 只看该作者
哇,这个教程很清晰,正好我也刚拿到新定义的开发板,回去试试!

使用特权

评论回复
板凳
帛灿灿| | 2024-10-2 15:39 | 只看该作者
感谢分享!这个延时函数好简单,我还在纠结该用什么方式写延时呢。

使用特权

评论回复
地板
周半梅| | 2024-10-2 15:39 | 只看该作者
新定义的MCU性能怎么样?一直在犹豫要不要入手一块开发板。

使用特权

评论回复
5
万图| | 2024-10-2 15:39 | 只看该作者
代码看起来挺容易理解的,我这种新手感觉也能搞定哈哈!

使用特权

评论回复
6
Wordsworth| | 2024-10-2 15:40 | 只看该作者
LED闪烁是入门必经之路啊,每次写完都觉得好有成就感。

使用特权

评论回复
7
Pulitzer| | 2024-10-2 15:40 | 只看该作者
没想到新定义的MCU还挺好用的,有没有更复杂的例子可以参考?

使用特权

评论回复
8
Bblythe| | 2024-10-2 15:41 | 只看该作者
延时函数这么写靠谱吗?不会卡住系统吗?

使用特权

评论回复
9
Uriah| | 2024-10-2 15:41 | 只看该作者
谢谢分享,刚好要用新定义的MCU写个小项目,代码直接拿来用了。

使用特权

评论回复
10
Clyde011| | 2024-10-2 15:42 | 只看该作者
这个开发板的GPIO控制好像挺方便的,准备入手玩一下。

使用特权

评论回复
11
szt1993| | 2024-11-19 23:58 | 只看该作者
LED等入门必备

使用特权

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

本版积分规则

41

主题

3747

帖子

0

粉丝