拿读数据做例子,其他的功能重要改掉03功能码就行
先组成命令的虚闹byte数组
byte[] Dp = new byte[8]
byte[] DpC = new byte[6]
Dp[0] = 0x01//这是表的地址,假定是01
Dp[1] = 0x03//这是功能码,03是读寄存器数据
Dp[2] = 0x00
Dp[3] = 0x03//表的相应寄存器地址
Dp[4] = 0x00
Dp[5] = 0x0C//表的相应寄存器参数,根据功能码和表的不同,这几个编码有变化
for (int i = 0i <6i++)
{
DpC[i] = Dp[i]
}
uint ValCRC
ValCRC = CRC(DpC)//CRC为自己写的CRC-16校验码的函数,具体的实现这里不给要的话可以发给你
Dp[6] = (byte)(ValCRC % 256)
Dp[7] = (byte)(ValCRC / 256)
然后把这个数组发给串口,编程语言迹誉滚不同发送方式不同
还在程序可以设置波特率,校验什姿余么的,编程语言不同设置方式也不同
然后接受数据,也是一个byte数组
然后自己解析数组,把需要的转化成10进制或者你需要的格式
大概就这样
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)