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

DSP28035SCI接收问题

使用SCI FIFO中断模式接收数据,数据包每包含8个8位数,每接收到一个数据即产生一个中断,也就是每一个数据包会产生8个中断。上位机最快每隔20ms左右发一包数据。但是接收到的数据的顺序被打乱了,我因此设置了一个包头和包尾,当判断包头和包尾不符合时复位FIFO指针,再重新发,但接收到的数据顺序还是错的。

请问大家有没有遇到这种情况呢?以下是我判断包头或包尾不对时调用的程序,但依然不起作用。

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

Tong Daniel:

我用的是485通讯,属于半双工,意味着发的时候就不能收,会不会因为这个原因导致收到的数据顺序不对呢?

使用SCI FIFO中断模式接收数据,数据包每包含8个8位数,每接收到一个数据即产生一个中断,也就是每一个数据包会产生8个中断。上位机最快每隔20ms左右发一包数据。但是接收到的数据的顺序被打乱了,我因此设置了一个包头和包尾,当判断包头和包尾不符合时复位FIFO指针,再重新发,但接收到的数据顺序还是错的。

请问大家有没有遇到这种情况呢?以下是我判断包头或包尾不对时调用的程序,但依然不起作用。

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

HH Y:

又说是FIFO中断,怎么又一个数据中断一次?FIFO深度是多少?

使用SCI FIFO中断模式接收数据,数据包每包含8个8位数,每接收到一个数据即产生一个中断,也就是每一个数据包会产生8个中断。上位机最快每隔20ms左右发一包数据。但是接收到的数据的顺序被打乱了,我因此设置了一个包头和包尾,当判断包头和包尾不符合时复位FIFO指针,再重新发,但接收到的数据顺序还是错的。

请问大家有没有遇到这种情况呢?以下是我判断包头或包尾不对时调用的程序,但依然不起作用。

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

rui liu4:

回复 Tong Daniel:

你好,我用的也是485通信,FIFO中断,但是一直没法进入接收中断,大神能给指导一下吗

赞(0)
未经允许不得转载:TI中文支持网 » DSP28035SCI接收问题
分享到: 更多 (0)