• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

大家好,请问,用arduino怎样把十六进制的高低八位合并?

英雄本色 2017-04-10 浏览量:3487
大家好,请问,用arduino怎样把十六进制的高低八位合并?(ps:能转换成十进制就更好了)
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
其他答案 数量:2
  • 嗨,內建Arduino就有API可以做了,可以不用自己寫

    然後

    以下是測試

    void setup() {
      // put your setup code here, to run once:
       Serial.begin(9600);
       byte msb=B01;
       byte lsb=B11;
       word w=word(msb,lsb);//B100000011
       int result=int(w);
       Serial.println(result);
    }

    其中Word和int只是有號無號差別,都是10進位了

    • 发布于2017-04-10
    • 举报
    • 评论 0
    • 0
    • 0

  • 8位合并16位或32位一般是用在串口或网络数据接口上,如果是我来做,会用个很巧妙的方式,指针


    原理是下面这样的:

    uint8_t a[2];

    uint16_t *b;

    a[0]=1;//高8位

    a[1]=1;//低8位

    b=a;

    其中,*b就是合并后的16位数


    实际使用时候这样写

    uint8_t * buffer;

    uint16_t * buffer_16;
    buffer = (uint8_t*)malloc(256);

    buffer_16 = (uint16_t*)malloc(128);

    .......//buffer按顺序赋值  

    buffer_16=buffer

    这样,*buffer_16就是由8位两两合并得到的16位数据的数组

    buffer_16的使用方法:

    设个i等于0到127, *(buffer_16+i)就是数组里每个变量的值

    • 发布于2017-04-11
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

大家好,请问,用arduino怎样把十六进制的高低八位合并?