//清除中断标志位
/* Read and save the S1 value */
/* Check to see if the rx full flag is set */
while (UART5->S1 & UART_S1_RDRF_MASK)
{
/* Read data register to clear the flag */
iTemp = UART5->D;
}
可是单步调试时,程序一直在while里面出不来。也就是说:读数据寄存器清除不了标志位吗?
调试复位,第一次执行时,启动DMA接收之后,再用串口助手发送数据包,DMA可以接收到完整数据包(见上楼截图)。
想用 清串口中断标志位 来实现过滤垃圾数据,垃圾数据包:88 33 33 44 55 66 77。通过串口助手发送后,程序先用
//清除中断标志位(在论坛上看到的清串口中断标志位方法)
/* Read and save the S1 value */
/* Check to see if the rx full flag is set */
while (UART5->S1 & UART_S1_RDRF_MASK)
{
/* Read data register to clear the flag */
iTemp = UART5->D;
}
想过滤这些数据后,再重新启动DMA。单步调试时,就死在这,我的感觉是上面清串口中断标志位方法没有起作用啊。
呼唤大神!