调试串口空闲中断,仿真时接收数据正常,产生了串口空闲中断,串口空闲中断将uartReceiveIdleFlag变量置1,在主循环判断并进入消息解析,发现不能进入消息解析,暂停后发现进入串口中断,怀疑串口中断没清除。查看数据手册,空闲中断清除有特定操作,按照手册修改,解决了问题,写这篇笔记记录。
if (USART_Interrupt_Status_Get(COM_UART, USART_INT_IDLEF) != RESET)
{
uartReceiveIdleFlag = 1;
data = USART_Data_Receive(COM_UART);//读数据寄存器
// USART_Interrupt_Status_Clear(COM_UART, USART_INT_IDLEF);//常规清除标志的方法不行
}
————————————————
版权声明:本文为CSDN博主「sscb0521」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/sscb0521/article/details/150493435
|
|