01 03 20 00 00 03 0E 0B .. .....
01 03 20 00 00 03 0E 0B .. .....
01 03 20 00 00 03 0E 0B .. .....
01 03 20 00 00 03 0E 0B .. .....
01 06 20 00 00 00 82 0A .. ...‚.
01 06 20 00 00 20 83 D2 .. .. ƒÒ
01 06 20 00 00 01 43 CA .. ...CÊ
01 03 20 00 00 03 0E 0B .. .....
01 06 20 00 00 02 03 CB .. ....Ë以上是我用serial monitor 监听得到的发送的数据。我在VB6中也要发送同上数据怎么做?
小弟第一次做串口通信,请大家指点一下,谢谢!
01 03 20 00 00 03 0E 0B .. .....
01 03 20 00 00 03 0E 0B .. .....
01 03 20 00 00 03 0E 0B .. .....
01 06 20 00 00 00 82 0A .. ...‚.
01 06 20 00 00 20 83 D2 .. .. ƒÒ
01 06 20 00 00 01 43 CA .. ...CÊ
01 03 20 00 00 03 0E 0B .. .....
01 06 20 00 00 02 03 CB .. ....Ë以上是我用serial monitor 监听得到的发送的数据。我在VB6中也要发送同上数据怎么做?
小弟第一次做串口通信,请大家指点一下,谢谢!
用RTU方式
dim OutputByte(8) as byte
前6个字节是数据,包括从机地址、功能码、起始地址以及需要读取的寄存器数量,后两个字节是用CRC计算出来的校验码
把它们都放在OutputByte中,然后用
do while(.....)
doevents
loop
MSComm1.Output=OutputByte
结构发送
把十六进制直接显示就是右边的东西。再把十六进制数十六位的高八位和低八位转换成相应的字符再加一个空格就是左边的显示方法。
比如char i=0x31;
显示打印字符是1。如果用十六进制显示的话就是31
char temp=GetChar(i & 0xF0);
char temp1=GetChar(i & 0x0F);
GetChar由自己来写就行,就是一个switch case语句把相应的数值1转换成字符1。