[应用笔记] 使用ChipON MCU实现简易串口通信功能

[复制链接]
 楼主| Uriah 发表于 2024-10-4 07:53 | 显示全部楼层 |阅读模式
最近我在学习使用ChipON的MCU,做了一个简易的串口通信项目,分享一下代码和心得。这个项目主要是通过串口发送和接收数据,实现MCU与PC之间的通信。对于初学者来说,这个例子能帮助大家更好地理解串口通信的基本概念和如何在ChipON MCU上进行配置。

硬件准备:
  • ChipON MCU开发板
  • USB转TTL模块(用于PC连接)
  • 若干杜邦线

软件环境:
  • Keil IDE
  • 串口调试助手

串口通信的主要步骤:
  • 初始化串口外设
    通过配置MCU的UART外设,设置波特率、数据位、停止位等参数。
  • 发送数据
    通过MCU向PC发送一段固定字符串,验证串口发送功能。
  • 接收数据
    通过串口调试助手向MCU发送数据,MCU接收到数据后将其返回,验证接收功能。


核心代码:
  1. #include "chipon.h"

  2. UART_HandleTypeDef huart1;

  3. void SystemClock_Config(void);
  4. static void MX_GPIO_Init(void);
  5. static void MX_USART1_UART_Init(void);

  6. int main(void)
  7. {
  8.     HAL_Init();
  9.     SystemClock_Config();
  10.     MX_GPIO_Init();
  11.     MX_USART1_UART_Init();
  12.    
  13.     uint8_t txData[] = "Hello from ChipON MCU!\r\n";
  14.     uint8_t rxData[100];
  15.    
  16.     while (1)
  17.     {
  18.         // 发送数据到PC
  19.         HAL_UART_Transmit(&huart1, txData, sizeof(txData) - 1, HAL_MAX_DELAY);
  20.         HAL_Delay(1000);  // 延时1秒

  21.         // 接收PC发送的数据
  22.         if (HAL_UART_Receive(&huart1, rxData, sizeof(rxData), 1000) == HAL_OK)
  23.         {
  24.             // 收到数据后再发送回PC
  25.             HAL_UART_Transmit(&huart1, rxData, sizeof(rxData), HAL_MAX_DELAY);
  26.         }
  27.     }
  28. }

  29. static void MX_USART1_UART_Init(void)
  30. {
  31.     huart1.Instance = USART1;
  32.     huart1.Init.BaudRate = 9600;
  33.     huart1.Init.WordLength = UART_WORDLENGTH_8B;
  34.     huart1.Init.StopBits = UART_STOPBITS_1;
  35.     huart1.Init.Parity = UART_PARITY_NONE;
  36.     huart1.Init.Mode = UART_MODE_TX_RX;
  37.     huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  38.     huart1.Init.OverSampling = UART_OVERSAMPLING_16;
  39.     HAL_UART_Init(&huart1);
  40. }
主要功能说明:
  • UART初始化:配置串口1为9600波特率,8数据位,1停止位,无校验位。
  • 发送功能:通过HAL_UART_Transmit函数,将字符串"Hello from ChipON MCU!"发送到PC。
  • 接收功能:通过HAL_UART_Receive接收PC发送的任意字符,并通过串口回传。

实验结果:
  • 在串口调试助手上可以看到MCU每秒发送一次"Hello from ChipON MCU!"。
  • 向MCU发送任意字符,MCU会自动将收到的字符回传给PC。

总结:
这次实验帮助我熟悉了ChipON MCU的UART配置和基本的串口通信流程。ChipON的外设库使用起来非常方便,代码结构也很清晰,适合做一些入门项目。如果你也在学习这款MCU,不妨试试这个例子。

有问题的话,大家一起交流讨论!


公羊子丹 发表于 2024-10-4 07:54 | 显示全部楼层
这个例子很实用,正好我最近在研究串口通信,学到了!
周半梅 发表于 2024-10-4 07:55 | 显示全部楼层
没想到ChipON的MCU串口这么好用,代码也挺简洁的,赞!
帛灿灿 发表于 2024-10-4 07:55 | 显示全部楼层
我一直用的是STM32,感觉ChipON的用法差不多,入门挺容易的!
童雨竹 发表于 2024-10-4 07:55 | 显示全部楼层
串口调试那段代码写得很清晰,初学者也能轻松上手,感谢分享!
万图 发表于 2024-10-4 07:56 | 显示全部楼层
我也刚开始玩ChipON,正好卡在串口配置上,你这篇文章帮了大忙!
Wordsworth 发表于 2024-10-4 07:56 | 显示全部楼层
这代码直接拿去改一下就能用,实战性很强啊!
Pulitzer 发表于 2024-10-4 07:56 | 显示全部楼层
一直没搞懂HAL库怎么用,你这篇文章总算让我理清思路了!
Bblythe 发表于 2024-10-4 07:57 | 显示全部楼层
一直没搞懂HAL库怎么用,你这篇文章总算让我理清思路了!
Clyde011 发表于 2024-10-4 07:57 | 显示全部楼层
刚试了下你的代码,运行得很顺畅!看来ChipON还是挺靠谱的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

139

主题

5840

帖子

1

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