具体步骤如下:
接收的如果是按字节接收(ReadByte),那么接收回来的数直接就可以用10进制表示,如果需要显示,可以直接在变量之后加.ToString()
不明白可直接加我HI
----------------------------------
之前的回答
byte[] t = new byte[2]
t[0] = 0xAA
t[1] = 0xBB
串口对象.Write(t,0,2)
其中3个参数顺序为:byte型数组,偏移(从第几位开始发,从0开始计),发送长度。
为了避免误会,额外说个基础:0xAA是 16进制的AA。
下面是一些可能会用的上的转换
private byte[] HexStringToByteArray(string s)
{//16进制字符串转化为字节数组
s = s.Replace(" ", "")
byte[] buffer = new byte[s.Length / 2]
for (int i = 0i <s.Lengthi += 2)
buffer[i / 2] = (byte)Convert.ToByte(s.Substring(i, 2), 16)
return buffer
}
private string ByteArrayToHexString(byte[] data)
{//字节数组转化为16进制字符串
StringBuilder sb = new StringBuilder(data.Length * 3)
foreach (byte b in data)
sb.Append(Convert.ToString(b, 16).PadLeft(2, '0'))
return sb.ToString().ToUpper()
}
16进制字节数据就是一个字节数组,把modbus命令存放在一个字节数组中,发送即可。
也可以先用流行支持协议的串口软件,如格西烽火等,编写好协议,测试通过再把命令字节数组在单片机中实现。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)