上位机通信,获取不到校验位数据,请教大家有什么办法没
上位机主要是采集数据和设置下位机数据用的。
我想让显示的数据尽量的准确,所以想用到校验和来进行判断传输的数据是否准确,可是获取的校验和数据确是“0”
为什么?
但是其中有一个数据能获得校验位,其他的都不行。我用示波器看了,传输的数据都是有校验位数据的。
发送请求和获取数据代码都是相同的。我用到了DLL第三方组件。
这是其中一段代码,是可以获取校验和的代码:
- C/C++ code
long Length; long cmd; if(!CheckConnect(Sender))return; QueryTime->Enabled = false; setmem(WriteBuffer,64,0); pkgBuf->SetCommand(0xa3); accParity = 0xa3; pkgBuf->SetDataLength(0x00); accParity += 0x00; pkgBuf->SetSlaveAddr(SlaveAddr->Text.ToInt()); accParity += SlaveAddr->Text.ToInt();//校验和 pkgBuf->GetPackage(WriteBuffer); pkgBuf->GetParityData(&cmd); cmd &= 0xff; Edit6->Text = cmd; Length=55; comm->Write(Length,&dwWriteLength);
有没有什么好的建议,请指点一二!
[解决办法]
一般把校验做成传输数据的一部分,用软件就可以读出了。
[解决办法]
你自己的
把得到取出仔的分析一下
[解决办法]
[解决办法]
上位机不容易获取第九位。
校验应该是硬件的事情,用API设置好校验位后,只要判断是否通过校验就可以了。