Hi:
大家好,我在写arm的串口驱动程序中发现:接收数据时,出现overrun错误,这样就会丢失数据,期根本原因是:
PC机发送太快,ARM中断来不及处理,造成overrun
我现在的想法是:
1. PC机发送指令之间加适当的延时;(这和普通的驱动不是很兼容,用户程序要
作很多额外的处理,不可取);
2.用DMA方式;
哪位大虾有更好的建议吗?
请告诉我
大家好,我在写arm的串口驱动程序中发现:接收数据时,出现overrun错误,这样就会丢失数据,期根本原因是:
PC机发送太快,ARM中断来不及处理,造成overrun
我现在的想法是:
1. PC机发送指令之间加适当的延时;(这和普通的驱动不是很兼容,用户程序要
作很多额外的处理,不可取);
2.用DMA方式;
哪位大虾有更好的建议吗?
请告诉我
先谢谢了
--
I had meet the same issue in my case before.
You can try to enable UART RX FIFO and set tigger level as low as possible in your dirver.
And, make sure your UART interrupt have high priority more then other interrupts.
God bless you. ^__^
--
If your UART don't have hardware fifo, please add overflow error handlings in UART interrupt handlers.
本文探讨了ARM串口驱动程序中出现Overrun错误的原因及解决方案,包括调整PC发送速率、使用DMA方式等,并提供了关于如何配置串口FIFO和优化中断处理的建议。
758

被折叠的 条评论
为什么被折叠?



