hello_mcu 2021-09-13 15:20 采纳率: 50%
浏览 40
已结题

如何将2字节温度数据转为单精度格式发给串口屏显示

硬件平台是stm32f107,串口屏是DWIN,串口屏这里设置是单精度数据格式。
stm32f107收到LORA发来的2个字节的温度数据,比如0x03 0x36,其中0x03是高位,0x36是低位;0x0336转为10进制是822,实际温度是82.2,也就是还有个系数0.1。
现在想在串口屏上显示82.2度,找了个转浮点的软件,单精度16进制是42A46666,即0x42 、0xA4、0x66、0x66;把这4个字节发到串口屏,就能显示82.2。

问题是:如何将0x03 0x36 的原码字节转为42A46666

img

  • 写回答

4条回答 默认 最新

  • 於黾 2021-09-13 15:28
    关注

    c语言可以定义结构体,使用关键字union
    struct s
    {
    byte[] b;
    float f;
    }union
    当你给f赋值,b自动成为4字节float类型,反之亦然

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 4月16日
  • 已采纳回答 4月8日
  • 创建了问题 9月13日