This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28335使用SCI的FIFO模式进行通信的队列深度问题

Other Parts Discussed in Thread: TMS320F28335

各位好,正在使用TMS320F28335做项目,要通过串行端口跟上位机通讯。

我设置了FIFO的接收深度为8,那么现在的问题是,当上位机下传的数据不足8字节时,SCI会一直等待,不产生中断。在NXP的M3芯片中,UART有个CTI中断可以和你好的处理这恶问题,但TMS320F28XX手册中没有提到类似中断。

或者SCI有没有相关的控制寄存器可以设置此种情况产生超时中断、或者是否有状态位能标示这种状态?或者换个思路有没有办法解决这个问题。

我考虑过两个思路,一是在通讯协议中让每次发送的数据字节数都是8的整数倍,但感觉不能根本解决问题,有没有一定的概率,在通讯错误的情况下少一个或多个字节,这样下位机整个流程岂不是乱掉了。

第二个思路是用定时器查询FIFO状态,FIFO接收队列如果一直处于固定字节数,强制对FIFO进行RESET,但这样最后几个字节岂不丢失了?

查阅了很多资料,这个问题困扰我好多天了,希望各位不吝赐教。

  • 这个FIFO深度触发中断的问题我以前使用时也是按照固定长度来发的  

    你的两种思路都有道理    发送中自定一种协议   通过针头和针尾决定接收处理还是丢弃