我在调试USART的时候,写了一个while(1)等待PC端传过来的数据,收到以后回传给PC。
开机后,PC可以正常下发字符给MCU,MCU也能正常回传数据给PC,但是静置一段时间后,PC突然收到一个字符'\0',这时候USART就无法正常工作了。
ISR的变化规律为:
正常收发的时候值为0x006010D0
异常的时候值为0x006210D0
我把ICR强制写入0XFFFFFFFF,ISR变为0x006200C0 ,但是依然无法正常工作,即使在keil点击reset,依然异常。
请教一下解决方法,谢谢!
异常恢复办法:
PC端接着串口工具,串口工具连着MCU,这时候重新给MCU上下电,PC端还是收到'\0',异常依然存在。
但是!PC端移除串口工具,MCU先断电,然后PC端接入串口工具,重新打开PC端串口软件等待接收,这时候重新给MCU上电,PC端就不会收到'\0'了,异常消除?
非常不解,串口工具是FT232,这个也能有影响吗?
|