我使用modbus协议,现在用232转usb可以从单片机读到数据并且可以正确显示,但用485转usb可以从单片机读到数据,但是接收的数据有时候正确有时候错误,不如:我发送命令希望得到5个为1的数据并显示使用定时器发送命令,结果显示的时候有时候为1,有时候为 别的数据
if(2==m_ctrlComm.GetCommEvent()) {
Sleep(400); //延时加在这个位置
//下面是对数据的处理
variant_inp = m_ctrlComm.GetInput();
safearray_inp = variant_inp;
len = safearray_inp.GetOneDimSize();
for(k = 0;k<len;k++)
{
safearray_inp.GetElement(&k,rxdata+k);
}
------解决方案--------------------
应该是你的接收软件的原因。
你用的这个控件接收固定长度的数据比较方便,你单步调试一下,看看数据。
我想,你如果每次都发单个字符的话应该没有什么问题的。