在实现MODBUS通讯时遇到问题,请高手指点。谢谢!
1.协议偶 8 1,中断接收中断发送(后来改查询发送,效果一样)。SCI配置:
SciaRegs.SCICTL1.bit.RXENA=1;
SciaRegs.SCICTL2.bit.RXBKINTENA = 1;
SciaRegs.SCICTL1.bit.SWRESET=1;
2 问题:上位机标准MODBUS设备(触摸屏)。字节数少(13bytes)正常。发送字节较多时(实例71字节),通过中断查看发送前缓存数据表正常,继续发送后串口助手接收到的数据经常少一个(触摸屏也不能正常接收),而且数据内容在35字节后出现错误。
3查询发送在main函数主循环中:
if(DIR==1)
{
if(UARTa.TxNUM>0)
{
while(SciaRegs.SCICTL2.bit.TXRDY==0){}
SciaRegs.SCITXBUF=UARTa.Buff[UARTa.TxCount];
UARTa.TxNUM--;
UARTa.TxCount++;
}
else
{
DIR = 0;
SciaRegs.SCICTL1.bit.TXENA=0;
SciaRegs.SCICTL1.bit.RXENA=1;
UARTa.RxCount = 0;
UARTa.TxNUM = 0;
}
}