欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 教育 > 锐评 > C# 5000 转16进制 字节(激光器串口通讯生成指定格式命令)

C# 5000 转16进制 字节(激光器串口通讯生成指定格式命令)

2025/2/24 10:33:09 来源:https://blog.csdn.net/cjh16606260986/article/details/143867764  浏览:    关键词:C# 5000 转16进制 字节(激光器串口通讯生成指定格式命令)

        最近在做一个与激光器用串口进行通讯的程序文档中要求将频率参数以3个字节的方式进行发送。这里记录一下过程。以便以后再有类似问题时可以快速解决。

        

/// <summary>/// 设置频率/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void btnSetHz_Click(object sender, EventArgs e){//设置PRF:PRF xxxx<CR><LF>try{//[00][02][00][11][D#1][D#2][CS][CS][0D]if (!string.IsNullOrEmpty(txtHz.Text.Trim())){var command = "[00][03][00][21]";int valueInt = -1;int.TryParse(txtHz.Text.Trim(), out valueInt);if (valueInt > 0){valueInt = valueInt * 1000;var hexStrByteSUm = 03 + 00 + 21;string hexString = valueInt.ToString("X6"); //转换为6位十六进制,前面填充0,数字6表示需求的长度byte[] byteArray = new byte[3];for (int i = 0; i < 3; i++){byte bit = Convert.ToByte(hexString.Substring(i * 2, 2), 16);byteArray[i] = bit;hexStrByteSUm += bit;command += "[" + hexString.Substring(i * 2, 2) + "]";}//command += "[" + hexStrByteSUm.ToString("X2") + "]";//校验和 16进制command += "[" + hexStrByteSUm % 256 + "]";//前面所有字节的和(模256)。这个校验和用于确保命令在传输过程中没有出错。command += "[0D]";AddListViewThread(null, "设置频率 发送:" + command, Color.Blue);//[00][03][00][21][07][A1][20][E0][0D]serialPortLaser.Write(command);}else{MessageBox.Show("输入的值无效!");}}else{MessageBox.Show("频率不能为空!");}}catch (Exception ex){MessageBox.Show("频率异常!msg:" + ex.Message);}}

        在C#中,可以使用ToString方法将整数转换为其十六进制表示的字符串,并使用Convert.ToString方法将整数转换为指定基数的字符串。对于转换为十六进制字节表示,需要首先确定整数的字节表示形式,通常是4个字节。

以下是将5000转换为其十六进制字节表示的示例代码:

using System;class Program
{static void Main(){int number = 5000;string hexString = number.ToString("X8"); // 转换为8位十六进制,前面填充0byte[] byteArray = new byte[4];for (int i = 0; i < 4; i++){byteArray[i] = Convert.ToByte(hexString.Substring(i * 2, 2), 16);}Console.WriteLine(BitConverter.ToString(byteArray).Replace("-", " "));}
}
这段代码首先将整数5000转换为8位十六进制字符串(前面填充0以确保总是4个字节),然后将每两个十六进制字符转换为字节,并最终以字节数组的形式输出。BitConverter.ToString用于以可读格式输出字节数组,Replace用于将输出中的连字符换成空格。

       

 

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词