打印
[应用笔记]

使用ChipON MCU实现UART通信与LED控制的应用分享

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

最近在项目中使用了ChipON MCU,主要做了一个简单的UART串口通信和LED控制的功能。ChipON的MCU用起来感觉很灵活,而且资源也丰富,所以在这里分享一下我实现的代码。

代码实现:
在这个项目中,我用ChipON MCU通过UART与PC通信,接收从PC发送的命令控制板上的LED亮灭。简单的功能,适合入门者了解ChipON MCU的基本操作。
#include <chipon_mcu.h>

#define LED_PIN GPIO_PIN_5
#define UART_BAUDRATE 9600

void UART_Init(void) {
    UART_ConfigType UART_Config;
    UART_Config.baudRate = UART_BAUDRATE;
    UART_Config.dataBits = UART_DATABITS_8;
    UART_Config.stopBits = UART_STOPBITS_1;
    UART_Config.parity = UART_PARITY_NONE;
    UART_Init(UART1, &UART_Config);
    UART_Enable(UART1);
}

void GPIO_Init(void) {
    GPIO_InitType GPIO_InitStruct;
    GPIO_InitStruct.Pin = LED_PIN;
    GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
    GPIO_InitStruct.Pull = GPIO_NOPULL;
    GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
    GPIO_Init(GPIOA, &GPIO_InitStruct);
}

void UART_ReceiveCommand(void) {
    char command;
    if (UART_Receive(UART1, &command, 1, 1000) == UART_OK) {
        if (command == '1') {
            GPIO_WritePin(GPIOA, LED_PIN, GPIO_PIN_SET);  // 点亮LED
        } else if (command == '0') {
            GPIO_WritePin(GPIOA, LED_PIN, GPIO_PIN_RESET);  // 关闭LED
        }
    }
}

int main(void) {
    ChipON_Init();  // 初始化MCU
    UART_Init();    // 初始化UART
    GPIO_Init();    // 初始化GPIO

    while (1) {
        UART_ReceiveCommand();  // 等待接收命令
    }
}

代码说明:
  • UART初始化:设置波特率为9600,8个数据位,1个停止位,无校验位。
  • GPIO初始化:配置GPIOA的引脚为推挽输出模式,用于控制LED的亮灭。
  • 命令接收与处理:通过UART接收PC发送的单字节命令,'1'表示点亮LED,'0'表示关闭LED。

这个程序非常简单,但展示了ChipON MCU基本的UART通信与GPIO控制能力。希望对刚刚接触这款MCU的朋友有所帮助。

总结:ChipON MCU的资源丰富,外围接口也很齐全,适合做很多嵌入式应用。如果有朋友在使用这款MCU遇到问题,欢迎一起交流。

使用特权

评论回复
沙发
公羊子丹| | 2024-10-5 13:35 | 只看该作者
这个代码看着挺简单实用的,刚好我最近也在学ChipON MCU,拿来试试!

使用特权

评论回复
板凳
周半梅| | 2024-10-5 13:36 | 只看该作者
刚接触ChipON MCU,感觉你的分享很有帮助,UART和GPIO一起用确实挺常见的。

使用特权

评论回复
地板
帛灿灿| | 2024-10-5 13:36 | 只看该作者
太棒了!我也正好想实现一个UART控制LED的项目,这个代码刚好适合我参考!

使用特权

评论回复
5
童雨竹| | 2024-10-5 13:36 | 只看该作者
我看了下代码,结构很清晰,适合新手,感谢分享!

使用特权

评论回复
6
Wordsworth| | 2024-10-5 13:37 | 只看该作者
这个UART控制LED的思路很清楚,有没有更多的ChipON MCU项目分享?

使用特权

评论回复
7
Bblythe| | 2024-10-5 13:37 | 只看该作者
我试了下代码,运行没问题,ChipON这款MCU感觉还蛮稳定的!

使用特权

评论回复
8
Pulitzer| | 2024-10-5 13:37 | 只看该作者
UART通信这块儿讲解得很详细,适合我这种刚开始摸索MCU的人!

使用特权

评论回复
9
Uriah| | 2024-10-5 13:37 | 只看该作者
最近正好有个小项目要用UART通信,你这篇分享刚好给了我启发,感谢!

使用特权

评论回复
10
Clyde011| | 2024-10-5 13:38 | 只看该作者
代码简单易懂,接下来我也打算尝试把串口通信加到我的项目中去!

使用特权

评论回复
11
钟爱柳州| | 2024-10-8 09:00 | 只看该作者
例程缺少USART端口重映射设置,通过查询芯片数据手册的重映射表,把USART的TX和RX映射到对应的端口才能实现与外部通讯

使用特权

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

本版积分规则

43

主题

3773

帖子

0

粉丝