调试时,遇到串口工作不稳定,时而接收不到命令, 在这求教各位前辈了!!!
FIFO选择一位触发,在处理其它中断时(它的优先级与串口优先级等同),上位机发来10字节数据,我没能及时相应,在前一中断退出后,进入串口中断,此时还会是一个字节就触发一次中断吗?还是仅触发一次中断,我需要查询RBR读取数据,直到数据读完???
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
如果上位机发过来10个字节数据,这些数据会保存在16级深度的FIFO中,如果串口的中断来不及处理,从前一中断退出后,就会进入串口中断。你可以在中断程序中查询RBR读取FIFO深度,直到数据读完。也可以只取一个字节,然后退出中断。在中断返回之前,由于中断尾链影响,中断并不会返回就会触发新的串口中断,直到你读完所有的FIFO。
推荐你先读FOFI深度,一次性读完所有FIFO中的数据,否则程序平白无故多了N个中断退出判断操作。
您好,您说对于uart缓冲可先读rbr,但是我目前在f28m35h52c1的M3核,uart没有rbr寄存器吗?并且,想问下uart波特率有上限吗?谢谢