Uriah 发表于 2024-10-4 07:53

使用ChipON MCU实现简易串口通信功能

最近我在学习使用ChipON的MCU,做了一个简易的串口通信项目,分享一下代码和心得。这个项目主要是通过串口发送和接收数据,实现MCU与PC之间的通信。对于初学者来说,这个例子能帮助大家更好地理解串口通信的基本概念和如何在ChipON MCU上进行配置。

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

软件环境:
[*]Keil IDE
[*]串口调试助手

串口通信的主要步骤:
[*]初始化串口外设
通过配置MCU的UART外设,设置波特率、数据位、停止位等参数。

[*]发送数据
通过MCU向PC发送一段固定字符串,验证串口发送功能。

[*]接收数据
通过串口调试助手向MCU发送数据,MCU接收到数据后将其返回,验证接收功能。


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

UART_HandleTypeDef huart1;

void SystemClock_Config(void);
static void MX_GPIO_Init(void);
static void MX_USART1_UART_Init(void);

int main(void)
{
    HAL_Init();
    SystemClock_Config();
    MX_GPIO_Init();
    MX_USART1_UART_Init();
   
    uint8_t txData[] = "Hello from ChipON MCU!\r\n";
    uint8_t rxData;
   
    while (1)
    {
      // 发送数据到PC
      HAL_UART_Transmit(&huart1, txData, sizeof(txData) - 1, HAL_MAX_DELAY);
      HAL_Delay(1000);// 延时1秒

      // 接收PC发送的数据
      if (HAL_UART_Receive(&huart1, rxData, sizeof(rxData), 1000) == HAL_OK)
      {
            // 收到数据后再发送回PC
            HAL_UART_Transmit(&huart1, rxData, sizeof(rxData), HAL_MAX_DELAY);
      }
    }
}

static void MX_USART1_UART_Init(void)
{
    huart1.Instance = USART1;
    huart1.Init.BaudRate = 9600;
    huart1.Init.WordLength = UART_WORDLENGTH_8B;
    huart1.Init.StopBits = UART_STOPBITS_1;
    huart1.Init.Parity = UART_PARITY_NONE;
    huart1.Init.Mode = UART_MODE_TX_RX;
    huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE;
    huart1.Init.OverSampling = UART_OVERSAMPLING_16;
    HAL_UART_Init(&huart1);
}
主要功能说明:
[*]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还是挺靠谱的。
页: [1]
查看完整版本: 使用ChipON MCU实现简易串口通信功能