这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » 如何将浮点数据转成HEX格式的数据?

共9条 1/1 1 跳转至

如何将浮点数据转成HEX格式的数据?

工程师
2019-09-15 20:42:15     打赏

在一个传感器项目里,传感器结果是浮点,我想通过hex传出来,


uint8_t Horas[4];
  sei();
bh1750_init();

    for (;;)
    {
     
         float V=314.15;
 
     Horas[0]=((uint8_t*)(&V))[3];
     Horas[1]=((uint8_t*)(&V))[2];
         Horas[2]=((uint8_t*)(&V))[1];
         Horas[3]=((uint8_t*)(&V))[0];

        softuart_send(Horas);


大家能看的明白上面的套路吗?

网上找的历程,传出来的数,无法理解314.5应该输出啥呢?





关键词: 浮点     转换     HEX     16进制     十六进制    

工程师
2019-09-15 20:47:01     打赏
2楼
这是直接传原始码(任何数在计算机内部都是二进制,你把它当成什么数它就是什么数,取决于使用者),接收到后近按顺序放进32位数里面,然后强制当成浮点数即可

建议使用联合体,那样更直观



工程师
2019-09-15 20:51:27     打赏
3楼

发送  memcpy(Horas,(uint8_t*)(&V),4);  直接发送
解析  memcpy((uint8_t*)(&V),Horas,4);  浮点型V的值就是你的数据,不用管


工程师
2019-09-15 20:58:47     打赏
4楼

发送端,和接收端的大小端需要注意,如果不一致,需要转换


工程师
2019-09-15 21:08:48     打赏
5楼

实际上, 直接将地址强制转换成  char*, 就可以传输了


工程师
2019-09-15 21:16:55     打赏
6楼

网上有个浮点转16进制的软件,下载看看。


院士
2019-09-16 11:10:01     打赏
7楼

这个代码就是将浮点数据存储区直接拷贝出来


高工
2019-09-16 23:16:59     打赏
8楼

同意楼上的观点


工程师
2019-09-16 23:36:53     打赏
9楼

发送端,和接收端的大小端需要注意


共9条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]