hal库实现stm32串口中断接收数据

stm32cubemx设置中断和异步通信模式。
在这里插入图片描述

先设置并开启串口中断接收
该函数功能为开启串口接收中断,并指定存储接收数据的缓存区,设置从串口接收的数据大小。这里要特别注意,该函数只有从串口接收到Size个数据后才会返回,不然会阻塞。

HAL_UART_Receive_IT(&huart1, multiInOne.uartBuffer[0].rxdBuf, 5);

接收中断处理函数设置再次使能串口中断接收:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart->Instance == USART1)
{
HAL_UART_Receive_IT(multiInOne.uartBuffer[0].huartHandle, multiInOne.uartBuffer[0].rxdBuf, 5);
}
}

串口最容易犯的错误是波特率设置错误,所以切记切记,波特率要设置正确。

注意:如果加奇偶校验位,需要设置数据位为9位数据位。另外还要注意是MSB先发送还是LSB先发送。
如:
数据结构是“起始位(1比特)+数据(8比特)+偶奇偶校验(1比特)+止动位(1比特)”,通过LSB第1发送。
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值