怎么用C#对串口发送16进制数啊

怎么用C#对串口发送16进制数啊,第1张

具体步骤如下:

接收的如果是按字节接收(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命令存放在一个字节数组中,发送即可。

也可以先用流行支持协议的串口软件,如格西烽火等,编写好协议,测试通过再把命令字节数组在单片机中实现。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9916723.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存