STM32中断方式接收方式每次一个字节同时发生接收一段时间后不能再次接受问题
程序员文章站
2024-02-22 12:08:04
...
问题产生原因:
频繁的发送数据和频繁的接收数据串口将产生过载错误;这就导致接收中断使能关闭;
SR寄存器标志产生过载
产生错误时寄存器值的变化
解决办法:
重新打开中断接收标志
if((huart1.Instance->CR1 & 0x20)==0) //判断是否关闭了中断标志
{
HAL_UART_Receive_IT(&huart1,data,1); //重新开启中断接收
}