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.