打印
[应用笔记]

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

[复制链接]
3492|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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接收到数据后将其返回,验证接收功能。


核心代码:
#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[100];
   
    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的用法差不多,入门挺容易的!

使用特权

评论回复
5
童雨竹| | 2024-10-4 07:55 | 只看该作者
串口调试那段代码写得很清晰,初学者也能轻松上手,感谢分享!

使用特权

评论回复
6
万图| | 2024-10-4 07:56 | 只看该作者
我也刚开始玩ChipON,正好卡在串口配置上,你这篇文章帮了大忙!

使用特权

评论回复
7
Wordsworth| | 2024-10-4 07:56 | 只看该作者
这代码直接拿去改一下就能用,实战性很强啊!

使用特权

评论回复
8
Pulitzer| | 2024-10-4 07:56 | 只看该作者
一直没搞懂HAL库怎么用,你这篇文章总算让我理清思路了!

使用特权

评论回复
9
Bblythe| | 2024-10-4 07:57 | 只看该作者
一直没搞懂HAL库怎么用,你这篇文章总算让我理清思路了!

使用特权

评论回复
10
Clyde011| | 2024-10-4 07:57 | 只看该作者
刚试了下你的代码,运行得很顺畅!看来ChipON还是挺靠谱的。

使用特权

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

本版积分规则

31

主题

3825

帖子

0

粉丝