这篇随笔最大的意义就是,串口通信的本质,如果为了人机交互方便,在控件textbox中输入16进制,然后转换成10机制或者0x0f是要转换的顺便说下,你可能感觉我说的晦涩,但是你实践下,你给我打个int i=1F

,你就会明白我所说的意思了,所以还是要多实践,所以人们发明了16进制表示法0x1f,int i =0x1f是没问题的。

1首先定义一组16进制的数组,Ok这句话本身就有毛病,当然你可以这么写 int i=0x4f,但是你转换的时候会比较麻烦,

所以你只能定义一个字符串组string[] str={"1f","2b"};

2开始转换int result = int.Parse(str , System.Globalization.NumberStyles.AllowHexSpecifier);str必须是字符串

3 对 我们要转换的是一组数据,在串口中都是一组数据的

foreach(string j in str)

{

int result = int.Parse(j, System.Globalization.NumberStyles.AllowHexSpecifier);

textbox.text+=result.tostring()+" ";//控制下格式

}

写在最后:其实没必要这么改的只不过你在和下位机通信的时候,比如接收数据按钮,你要给下位机一个信号,下位机开始传输数据,这个信号时16进制的(显示应该是16进制的),对16进制的,C#表示很无奈,只能定义成字符串组,字符串组发送是没有意义的,所以要写成"0xff"的格式,但这样在控件中是不能写成这样的,所以还要转换成"0xff"或者转换成10进制,然后发送OK啦,10进制转换成二进制开始传输,下位机得到数据开始转换(二进制转换成16进制);记住10进制的数值的二进制和16进制的数值的二进制是一样的,他们都是以二进制传输的;ascii码只是的符号,数值只是他的一个符号,没有数值意义的

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐