N32G430C8-串口驱动问题
调试串口空闲中断,仿真时接收数据正常,产生了串口空闲中断,串口空闲中断将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);//常规清除标志的方法不行}