STM32实现串口通信

本文介绍了如何使用cubeMX创建STM32工程,并设置串口通信参数,包括波特率、数据位和中断接收。重点讲解了串口发送和接收数据的流程,特别是中断回调函数的设计,确保连续接收数据的能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用cubeMX创建工程,调整串口相关设置

本文章继承之前的点灯实验,有些设置做了简略,其他设置请参考点灯实验文章
在这里插入图片描述
1点击USATR1
2设置MODE为异步通信(Asynchronous)
3基础参数:波特率为115200 Bits/s。传输数据长度为8 Bit。奇偶检验无,停止位1 接收和发送都使能
4GPIO引脚设置 USART1_RX/USART_TX
5 NVIC Settings 一栏使能接收中断

生成代码后打开工程

通过串口发送数据

uint8_t buf[] = "test\n";
HAL_UART_Transmit(&huart1, buf, sizeof(buf), 0xffff);串口发送数据,最大传输时间0xffff
HAL_Delay(1000);

串口接收数据并返回

UART接收中断
因为中断接收函数只能触发一次接收中断,所以我们需要在中断回调函数中再调用一次中断接收函数

具体流程:
1、初始化串口

2、在main中第一次调用接收中断函数

3、进入接收中断,接收完数据 进入中断回调函数

4、修改HAL_UART_RxCpltCallback中断回调函数,处理接收的数据,

5 回调函数中要调用一次HAL_UART_Receive_IT函数,使得程序可以重新触发接收中断

函数流程图:

HAL_UART_Receive_IT(中断接收函数) -> USART2_IRQHandler(void)(中断服务函数) -> HAL_UAR

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值