最近在F28035最小系统板子上开发一个DA卡系统,一块板子发送数据,另一块板子接收数据,需要通过发送和接收FIFO收发数据,接受和发送FIFO都能存放4个字节的数据,所以我的设计的是接收FIFO每接收到4个字节数据就产生一个接收中断读取FIFO中的数据。但是这样的话会有缺陷,如果发送数据和接收数据都在不间断进行,数据收发都不会产生错误,如果中断,比如信号传输线断开又连接上,这时候数据接收就会错误,
我的解决方法是每当发送一个数据块(4个字节)时,就对接收FIFO进行清空,这样就不会因数据接收错位而错误接收数据了,
问题出来了,如何有效的清空FIFO??有大侠懂不,望不吝赐教
此帖出自
小平头技术问答
对于这种情况,应该使用软件重新整理数据,不能从FIFO上考虑,因为如果让FIFO完成,需要设置,模块的设置改来改去,不是个好办法。
Sci*Regs.SCIFFRX.bit.RXFIFORESET=1;
这两句是可以使用的,但记得不能在SCI中断里面调用。
一周热门 更多>