如何清除接受FIFO中的数据

2019-03-26 14:57发布

最近在F28035最小系统板子上开发一个DA卡系统,一块板子发送数据,另一块板子接收数据,需要通过发送和接收FIFO收发数据,接受和发送FIFO都能存放4个字节的数据,所以我的设计的是接收FIFO每接收到4个字节数据就产生一个接收中断读取FIFO中的数据。但是这样的话会有缺陷,如果发送数据和接收数据都在不间断进行,数据收发都不会产生错误,如果中断,比如信号传输线断开又连接上,这时候数据接收就会错误,我的解决方法是每当发送一个数据块(4个字节)时,就对接收FIFO进行清空,这样就不会因数据接收错位而错误接收数据了问题出来了,如何有效的清空FIFO??有大侠懂不,望不吝赐教 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
dontium
1楼-- · 2019-03-27 18:08
DSPscififo 发表于 2015-6-12 16:35
我的问题跟楼主差不多,用的28335.
interrupt void scicRxFifoIsr(void)
{
    Uint16 i;
        for(i=0;i

对于这种情况,应该使用软件重新整理数据,不能从FIFO上考虑,因为如果让FIFO完成,需要设置,模块的设置改来改去,不是个好办法。
funlisen1
2楼-- · 2019-03-27 21:42
Sci*Regs.SCIFFRX.bit.RXFIFORESET=0;
Sci*Regs.SCIFFRX.bit.RXFIFORESET=1;
这两句是可以使用的,但记得不能在SCI中断里面调用。

一周热门 更多>