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

[复制链接]
 楼主| 万图 发表于 2024-10-5 13:35 | 显示全部楼层 |阅读模式

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

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

  2. #define LED_PIN GPIO_PIN_5
  3. #define UART_BAUDRATE 9600

  4. void UART_Init(void) {
  5.     UART_ConfigType UART_Config;
  6.     UART_Config.baudRate = UART_BAUDRATE;
  7.     UART_Config.dataBits = UART_DATABITS_8;
  8.     UART_Config.stopBits = UART_STOPBITS_1;
  9.     UART_Config.parity = UART_PARITY_NONE;
  10.     UART_Init(UART1, &UART_Config);
  11.     UART_Enable(UART1);
  12. }

  13. void GPIO_Init(void) {
  14.     GPIO_InitType GPIO_InitStruct;
  15.     GPIO_InitStruct.Pin = LED_PIN;
  16.     GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  17.     GPIO_InitStruct.Pull = GPIO_NOPULL;
  18.     GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;
  19.     GPIO_Init(GPIOA, &GPIO_InitStruct);
  20. }

  21. void UART_ReceiveCommand(void) {
  22.     char command;
  23.     if (UART_Receive(UART1, &command, 1, 1000) == UART_OK) {
  24.         if (command == '1') {
  25.             GPIO_WritePin(GPIOA, LED_PIN, GPIO_PIN_SET);  // 点亮LED
  26.         } else if (command == '0') {
  27.             GPIO_WritePin(GPIOA, LED_PIN, GPIO_PIN_RESET);  // 关闭LED
  28.         }
  29.     }
  30. }

  31. int main(void) {
  32.     ChipON_Init();  // 初始化MCU
  33.     UART_Init();    // 初始化UART
  34.     GPIO_Init();    // 初始化GPIO

  35.     while (1) {
  36.         UART_ReceiveCommand();  // 等待接收命令
  37.     }
  38. }

代码说明:
  • 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的项目,这个代码刚好适合我参考!
童雨竹 发表于 2024-10-5 13:36 | 显示全部楼层
我看了下代码,结构很清晰,适合新手,感谢分享!
Wordsworth 发表于 2024-10-5 13:37 | 显示全部楼层
这个UART控制LED的思路很清楚,有没有更多的ChipON MCU项目分享?
Bblythe 发表于 2024-10-5 13:37 | 显示全部楼层
我试了下代码,运行没问题,ChipON这款MCU感觉还蛮稳定的!
Pulitzer 发表于 2024-10-5 13:37 | 显示全部楼层
UART通信这块儿讲解得很详细,适合我这种刚开始摸索MCU的人!
Uriah 发表于 2024-10-5 13:37 | 显示全部楼层
最近正好有个小项目要用UART通信,你这篇分享刚好给了我启发,感谢!
Clyde011 发表于 2024-10-5 13:38 | 显示全部楼层
代码简单易懂,接下来我也打算尝试把串口通信加到我的项目中去!
钟爱柳州 发表于 2024-10-8 09:00 | 显示全部楼层
例程缺少USART端口重映射设置,通过查询芯片数据手册的重映射表,把USART的TX和RX映射到对应的端口才能实现与外部通讯
您需要登录后才可以回帖 登录 | 注册

本版积分规则

152

主题

5805

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部

152

主题

5805

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部