C#串口发送数据

我想给串口发送十六进制命令,命令字符串是:“0000001B54595554000000000000000000000000FFE10005000D0A”我如何将上述字符... 我想给串口发送十六进制命令,命令字符串是:“00 00 00 1B 54 59 55 54 00 00 00 00 00 00 00 00 00 00 00 00 FF E1 00 05 00 0D 0A”
我如何将上述字符串进行数值转化,才能使计算机串口知道我发的本字符串是十六进制的?
各位谁有这样的示例代码,麻烦帮我一下,我是做硬件的,对软件不熟悉,希望高手能给段详细代码,谢谢!
展开
 我来答
rover1367
推荐于2016-05-21 · TA获得超过253个赞
知道小有建树答主
回答量:251
采纳率:0%
帮助的人:159万
展开全部
添加引用:Microsoft.VisualBasic(是C#代码,只是需要引用下。。)

用以下遍历SerialPortNames,获得所有的串口
Microsoft.VisualBasic.Devices.Computer pc = new Microsoft.VisualBasic.Devices.Computer();
foreach (string s in pc.Ports.SerialPortNames)
{
this.comboBox1.Items.Add(s);
}

然后对应显示的串口名称comName,获取操作对象。就可以对这个串口进行打开了:

System.IO.Ports.SerialPort com = new System.IO.Ports.SerialPort(comName);
com.Open();

然后可以对串口写数据

向串口发送数据:
com.WriteLine(this.textBox1.Text);
也可以写byte数组
com.Write(bArray,0,5);//是指写byte数组bArray的,从0开始的5个byte

也可以接受数据:
com.ReadLine()
也可以读byte
com.ReadByte();

最后就是关闭了:
com.Close();

另外将16进制string转byte
byte b = Convert.ToByte("1A",16);
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
8269男
2009-09-25 · TA获得超过252个赞
知道小有建树答主
回答量:354
采纳率:0%
帮助的人:172万
展开全部
这涉及点进制转换,希望下面的代码对你有帮助..

//十进制转二进制
Console.WriteLine("十进制166的二进制表示: "+Convert.ToString(166, 2));
//十进制转八进制
Console.WriteLine("十进制166的八进制表示: "+Convert.ToString(166, 8));
//十进制转十六进制
Console.WriteLine("十进制166的十六进制表示: "+Convert.ToString(166, 16));

//二进制转十进制
Console.WriteLine("二进制 111101 的十进制表示: "+Convert.ToInt32("111101", 2));
//八进制转十进制
Console.WriteLine("八进制 44 的十进制表示: "+Convert.ToInt32("44", 8));
//十六进制转十进制
Console.WriteLine("十六进制 CC的十进制表示: "+Convert.ToInt32("CC", 16));
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
非天DH0a2
2009-09-25 · TA获得超过484个赞
知道答主
回答量:177
采纳率:0%
帮助的人:114万
展开全部
收藏了。学习中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式