[开发工具] 基于极海MCU的UART串口通信应用及代码实现

[复制链接]
1218|1
 楼主| 万图 发表于 2024-10-2 17:10 | 显示全部楼层 |阅读模式
在最近的项目中,我使用了极海MCU,体验了一下UART串口通信的实现,感觉还不错。想和大家分享一下具体的实现步骤和代码,希望对大家有所帮助。

1. 硬件环境
我使用的是极海MCU的开发板,搭配一个USB转TTL模块,用于与电脑的串口通信。开发环境则是使用了Keil MDK。

2. 串口通信的基本配置
首先,在开发环境中配置好UART的相关参数,比如波特率、数据位、停止位等。一般来说,串口配置的核心就是这些几个参数:
  • 波特率:115200
  • 数据位:8位
  • 停止位:1位
  • 无奇偶校验

3. 代码实现
以下是代码的关键部分,主要是如何在极海MCU上初始化UART,并实现基本的发送和接收功能。

  1. #include "hc32f460.h"
  2. #include "uart.h"

  3. void UART_Init(void)
  4. {
  5.     stc_uart_init_t stcUartInit;
  6.    
  7.     /* 配置UART参数 */
  8.     MEM_ZERO_STRUCT(stcUartInit);
  9.     stcUartInit.u32Baudrate = 115200;  // 设置波特率
  10.     stcUartInit.u32DataBits = UART_DATA_BITS_8;  // 8数据位
  11.     stcUartInit.u32StopBits = UART_STOP_BIT_1;  // 1停止位
  12.     stcUartInit.u32Parity = UART_PARITY_NONE;  // 无校验
  13.    
  14.     UART_Init(UART_CH, &stcUartInit);
  15.    
  16.     /* 启动UART接收与发送功能 */
  17.     UART_FuncCmd(UART_CH, UART_RX | UART_TX, Enable);
  18. }

  19. void UART_SendData(uint8_t data)
  20. {
  21.     /* 发送数据 */
  22.     UART_Send(UART_CH, data);
  23. }

  24. uint8_t UART_ReceiveData(void)
  25. {
  26.     /* 接收数据 */
  27.     return UART_Receive(UART_CH);
  28. }

  29. int main(void)
  30. {
  31.     uint8_t receivedData;
  32.    
  33.     /* 初始化UART */
  34.     UART_Init();
  35.    
  36.     while (1)
  37.     {
  38.         /* 循环接收数据并原样返回 */
  39.         receivedData = UART_ReceiveData();
  40.         UART_SendData(receivedData);  // 回传收到的数据
  41.     }
  42. }

4. 代码解读
  • UART_Init:这个函数用来初始化UART的参数。包括波特率、数据位、停止位等的设置。
  • UART_SendData:用于通过串口发送数据。
  • UART_ReceiveData:用于接收从电脑端发送过来的数据。
  • main函数:在主循环中,MCU不断接收从串口发来的数据,并原样发送回去。这是一个简单的回显程序,用于验证串口通信是否正常。

5. 总结
通过这个例子,基本完成了极海MCU的UART串口通信功能。代码非常简洁,极海的HAL库让很多底层操作变得更加简单。如果你对UART通信有需求,不妨试试看这种方式!未来我还会尝试更多高级功能,比如中断通信和DMA传输,有机会再跟大家分享!

希望这篇文章能帮到正在使用极海MCU的小伙伴们!

daichaodai 发表于 2024-10-4 08:57 来自手机 | 显示全部楼层
UART是MCU中使用最频繁的通信接口了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

174

主题

6216

帖子

1

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