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

2812的scib,485通讯

我用的2812的scib通讯,RS485,modbus协议,FIFO中断方式,用了01和03两个功能码,01功能码总共19个字节,前面16个字节电脑能收到,后面3个字节电脑收不到,03功能共37个字节,前面32字节电脑能收到,后面5个字节电脑收不到,请问是什么原因?

Jason Wu4:

你的FIFO发送中断级位设定为多少?

我用的2812的scib通讯,RS485,modbus协议,FIFO中断方式,用了01和03两个功能码,01功能码总共19个字节,前面16个字节电脑能收到,后面3个字节电脑收不到,03功能共37个字节,前面32字节电脑能收到,后面5个字节电脑收不到,请问是什么原因?

zhaogong zhao:

回复 Jason Wu4:

ScibRegs.SCIFFTX.bit.TXFFILIL=0;

我用的2812的scib通讯,RS485,modbus协议,FIFO中断方式,用了01和03两个功能码,01功能码总共19个字节,前面16个字节电脑能收到,后面3个字节电脑收不到,03功能共37个字节,前面32字节电脑能收到,后面5个字节电脑收不到,请问是什么原因?

zhaogong zhao:

回复 zhaogong zhao:

 当scififo里的数据发送完毕后,哪个寄存器的哪个位会置1?
我想在程序里检测这个位,如果检测到这个位为1,延时后就关掉RS485的发送。 

我用的2812的scib通讯,RS485,modbus协议,FIFO中断方式,用了01和03两个功能码,01功能码总共19个字节,前面16个字节电脑能收到,后面3个字节电脑收不到,03功能共37个字节,前面32字节电脑能收到,后面5个字节电脑收不到,请问是什么原因?

Jason Wu4:

回复 zhaogong zhao:

您可以尝试检测缓存中的状态标志位TXFFST

我用的2812的scib通讯,RS485,modbus协议,FIFO中断方式,用了01和03两个功能码,01功能码总共19个字节,前面16个字节电脑能收到,后面3个字节电脑收不到,03功能共37个字节,前面32字节电脑能收到,后面5个字节电脑收不到,请问是什么原因?

zhaogong zhao:

回复 Jason Wu4:

谢谢,我是在ADC中断程序里发送最后几个字节数据时,做了一个标志位,然后在主程序里监测这个标志,同时还监测TXFFINT这个位,一旦监测到这个标志为1就延时DELAY_US(550l);然后关掉RS485的发送使能,已正常。

我用的2812的scib通讯,RS485,modbus协议,FIFO中断方式,用了01和03两个功能码,01功能码总共19个字节,前面16个字节电脑能收到,后面3个字节电脑收不到,03功能共37个字节,前面32字节电脑能收到,后面5个字节电脑收不到,请问是什么原因?

Jason Wu4:

回复 zhaogong zhao:

顺便问一句,当您中断标志为1时,说明发送缓存内发送完成,经过一段延迟后你为啥要关掉RS485的发送呢?

赞(0)
未经允许不得转载:TI中文支持网 » 2812的scib,485通讯
分享到: 更多 (0)