C#编程中,如何把textbox1内的一段16进制字符串,以16进制的形式发送给串口?

我用C#做一个上位机,需要给我的设备发送命令帧,帧为16进制,我把命令帧放在textbox的text属性里,现在我不知道该怎样把这个命令帧以16进制的形式发送到串口,搞了3天一直卡在这里,希望大家帮帮忙,最好弄上代码,不甚感激,另附命令帧:FE 68 11 11 11 11 11 11 68 1C 10 35 67 89 AB 33 33 33 33 4D 33 33 33 45 45 45 CC 7F 16,中间空格可以去掉。

给你一个C#写的串口调试软件,你先试试吧,看能不能满足你的要求


温馨提示:内容为网友见解,仅供参考
第1个回答  2013-08-03

你的设备以什么形式接收数据的有,int数组还是byte数组

        const string str = @"FE 68 11 11 11 11 11 11 68 1C 10 35 67 89 AB 33 33 33 33 4D 33 33 33 45 45 45 CC 7F 16";
        var strings = str.Split(' ');
        var bytes = Array.ConvertAll(strings, input => Convert.ToInt32(input, 16));

//        Array.ForEach(bytes, i => Debug.Write(string.Format(@"0X{0:X} ", i)));

本回答被提问者采纳
第2个回答  2019-06-17
请问这个问题最后怎么解决的,我也遇到了,请求帮忙

如何用“C#”对串口发送16进制数?
1. 16进制数转换为字节:16进制数是一种数值表示方法,它使用16个不同的符号来表示数值,包括0-9来表示值0到9,以及A-F来表示值10到15。在C#中,可以使用`Convert.ToByte`方法将表示16进制数的字符串转换为对应的字节。例如,`Convert.ToByte`会将16进制数"0F"转换为字节15。2. 打开串口:在...

如何用“C#”对串口发送16进制数?
其中3个参数顺序为:byte型数组,偏移(从第几位开始发,从0开始计),发送长度。为了避免误会,额外说个基础:0xAA是 16进制的AA。下面是一些可能会用的上的转换 private byte[] HexStringToByteArray(string s){\/\/16进制字符串转化为字节数组 s = s.Replace(" ", "");byte[] buffer = new...

如何用“C#”对串口发送16进制数?
接下来是准备要发送的16进制数据。在C#中,16进制数通常以字符串的形式表示,如"0xA5"或"A5"。为了通过串口发送这些数据,需要先将它们转换为字节流。这可以通过将每两个16进制字符转换为一个字节来实现。例如,字符串"A5"将被转换为字节0xA5。在转换过程中,可以使用C#的`Convert.ToByte`方法,但...

怎么将C# 中textbox的字符串转为16进制 然后以16进制相加?
我想你搞错了,转16进制不是给每一个字符加上0x就表示转化为16进制,0x只是表示这个数为16进制表示法。byte[] b = Encoding.ASCII.GetBytes(TextBox1.Text);\/\/按照指定编码将string编程字节数组 string result = string.Empty;for (int i = 0; i < b.Length; i++)\/\/逐字节变为16进制字符 ...

C#中怎样定义一个16进制的变量?而且怎样将textbox中的text赋值给这个变...
楼上说的恐怕不对,问的是16进制,不是16位的数字 代码如下:string s = textbox.Text;int i = Convert.ToInt32(s);string s2 = String.Format("{0:x}",i);\/\/s2的值就是将十进制转化为16进制的结果 \/\/16进制转十进制 Convert.ToInt32("42",16);\/\/输出结果64 \/\/十进制转16进制 C...

怎么将C# 中textbox的字符串转为16进制 然后以16进制相加?
举个简单例子参考:string str1 = "0x11";string str2 = "0xAA";int sum = Convert.ToInt32(str1,16) + Convert.ToInt32(str2,16);把串每2个分开,转换相加;

如何用C#来发送16进制数据拜托各位大神
通过串口发送的只能是字节流(字节数组),字节就是0-255这256个数字,所以用串口发送的时候,只要建立好一个byte[],然后发送就可以了 01036102020000应该是一串16进制的数字吧,那你不能用Encoding.ASCII.GetBytes来转换为字节数组的 01036102020000,每两位表示一个16进制数,01 03 61 02 02 00 00一...

c#的这个程序的string如何用16进制发送
var bytes = Encoding.Default.GetBytes("字符串")串口对象.Write(bytes,0,bytes.Length);

批处理向串口发送16进制编码
使用串口类软件,很轻松,如下图的格西烽火,串口模式下,可以发送Hex,字符串等格式的数据。

C# 串口十六进制发送
把通信协议以字符串的格式发送数据,接收到的数据为十六进制

相似回答