【NUC240】 UART FIFO问题

nt52241930 |浏览1913次
收藏|2015/10/13 10:11

目前使用牛桥,PC端每100ms,传送3byte给予nuc240,

21次接收,皆正常,只要传送至第22,RBR暂存就会停在传送的最后1BYTE,

经确认后,FIFO最大为64BYTE,故只要传送到第22次就会超过,

此部分,想请问,该如何正确接收完数据后,一并将FIFO内数据清除,使它不会发生满出的情况???

RX_FULL=0,并未显示满的情况

满意回答

2022/09/06 16:37

FiFo内的数据,读一次RBR清除一个,后面的数据前移。所以接收FIFO是随着读取自动清除的。一直不读取数据,接收FIFO就会满

处理方法一,采用轮询的方式,主循环中不断查询 FiFo中是否有数据,有就读空 FiFo。

处理方法二 ,采用中断的方式,配置 FiFo 到一定字节数据时,就产生中断,读空 FiFo。

BSP中有UART的sample code可以参考

CHLIN55

其他回答(1)
  • FiFo内的数据,读一个清除一个,后面的数据前移。

    处理方法一,主循环中不断读判 FiFo中是否有数据,有就读空 FiFo。

    处理方法二 ,配置 FiFo 到一定字节数据时,就产生中断,读空 FiFo。

    具体请参阅BSP, 或电话咨寻。

    回答于 2015/10/13 13:34
0人关注该问题
+1
 加载中...