找回密码
 注册
关于网站域名变更的通知
查看: 208|回复: 3
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-12-6 09:53 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
本帖最后由 guanshen 于 2021-12-6 10:40 编辑

硬件平台是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


  • TA的每日心情
    开心
    2022-12-27 15:07
  • 签到天数: 1 天

    [LV.1]初来乍到

    2#
    发表于 2021-12-6 10:37 | 只看该作者
    c语言可以定义结构体,使用关键字union
    struct s
    {
    byte[] b;
    float f;
    }union
    当你给f赋值,b自动成为4字节float类型,反之亦然

    该用户从未签到

    3#
    发表于 2021-12-6 10:37 | 只看该作者
    要注意下大小端,如果上下大小端不一致,byte[] b的顺序是刚好相反的

    该用户从未签到

    4#
    发表于 2021-12-6 10:38 | 只看该作者
    先用sprintf转换成浮点数字符串,然后发送字符串
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-6-20 18:34 , Processed in 0.078125 second(s), 26 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表