zoukankan      html  css  js  c++  java
  • 串口通信本质及中16进制转10进制

     这篇随笔最大的意义就是,串口通信的本质,如果为了人机交互方便,在控件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码只是的符号,数值只是他的一个符号,没有数值意义的

  • 相关阅读:
    棋盘格渲染
    openvino踩坑之Data type is unsupported
    [video super resolution] ESPCN论文笔记
    tensorflow fp16训练
    openvino安装踩坑记
    python numpy中astype使用不当导致图像出现artifact
    Python~字典
    Django~待解决的问题
    正则表达式应用
    GitLab使用
  • 原文地址:https://www.cnblogs.com/mamiyiya777/p/6054692.html
Copyright © 2011-2022 走看看