TI中文支持网
TI专业的中文技术问题搜集分享网站

28035SCI的接收FIFO中断最大只能设为4个字节,但我的上位机协议设置为发送8个字节,如何解决这个问题呢?

大家新年好,我有一个问题不太明白,希望大家多多指教:

        28035SCI的接收FIFO中断最大只能设为4个字节,但我的上位机协议设置为发送8个字节,如何解决这个问题呢?

PINRAN LIAO:

用中断一个字节一个字节接收吧!以前用FIFO会出现数据顺序打乱的现象。

大家新年好,我有一个问题不太明白,希望大家多多指教:

        28035SCI的接收FIFO中断最大只能设为4个字节,但我的上位机协议设置为发送8个字节,如何解决这个问题呢?

rookiecalf:

回复 PINRAN LIAO:

接受完4个,取出,再接收剩余4个,为防止数据顺序问题,需要加看门狗,超过一定时候,作为新的一帧数据。如果必要,重新设计数据帧,做起止判断,以及纠错功能。

大家新年好,我有一个问题不太明白,希望大家多多指教:

        28035SCI的接收FIFO中断最大只能设为4个字节,但我的上位机协议设置为发送8个字节,如何解决这个问题呢?

Tong Daniel:

回复 rookiecalf:

你好,非常感谢你的回复,我想请教下纠错的思路大概是什么样的呢?谢谢了!

大家新年好,我有一个问题不太明白,希望大家多多指教:

        28035SCI的接收FIFO中断最大只能设为4个字节,但我的上位机协议设置为发送8个字节,如何解决这个问题呢?

rookiecalf:

回复 Tong Daniel:

也不算什么真正的纠错了,只要能判断是不是有效数据就成,可以添加个CRC校验

大家新年好,我有一个问题不太明白,希望大家多多指教:

        28035SCI的接收FIFO中断最大只能设为4个字节,但我的上位机协议设置为发送8个字节,如何解决这个问题呢?

Tong Daniel:

回复 rookiecalf:

为了避免上一次数据接收顺序错误影响到下次数据的接收,我接收到一个完整的数据后,判断帧头和帧尾,如果数据不对则将SCI接收FIFO寄存器指针复位,然后再重新是能接收FIFO。但这种方法行不通,只要有一次数据顺序错误,那么以后每一次的数据接收都是错误的。请问你是怎么避免数据发生错误的呢?

我的接收FIFO复位程序如下:

if(sci_rx[0]!=0x55||sci_rx[7]!=0x00)//如果帧头或帧尾不对 { SciaRegs.SCIFFRX.bit.RXFIFORESET=0;//接收FIFO指针复位 SciaRegs.SCIFFRX.bit.RXFIFORESET=1;//接收FIFO使能 }}

大家新年好,我有一个问题不太明白,希望大家多多指教:

        28035SCI的接收FIFO中断最大只能设为4个字节,但我的上位机协议设置为发送8个字节,如何解决这个问题呢?

rookiecalf:

回复 Tong Daniel:

Tong Daniel

为了避免上一次数据接收顺序错误影响到下次数据的接收,我接收到一个完整的数据后,判断帧头和帧尾,如果数据不对则将SCI接收FIFO寄存器指针复位,然后再重新是能接收FIFO。但这种方法行不通,只要有一次数据顺序错误,那么以后每一次的数据接收都是错误的。请问你是怎么避免数据发生错误的呢?

我的接收FIFO复位程序如下:

if(sci_rx[0]!=0x55||sci_rx[7]!=0x00)//如果帧头或帧尾不对 { SciaRegs.SCIFFRX.bit.RXFIFORESET=0;//接收FIFO指针复位 SciaRegs.SCIFFRX.bit.RXFIFORESET=1;//接收FIFO使能 }}

赞(0)
未经允许不得转载:TI中文支持网 » 28035SCI的接收FIFO中断最大只能设为4个字节,但我的上位机协议设置为发送8个字节,如何解决这个问题呢?
分享到: 更多 (0)