迪文科技论坛

 找回密码
 立即注册
搜索
查看: 989|回复: 1

【分享】迪文屏显示小数要使用十六进制HEX码,单片机C函数

[复制链接]

1

主题

1

回帖

28

积分

新手上路

Rank: 1

积分
28
发表于 2020-9-8 15:32:40 | 显示全部楼层 |阅读模式
使用迪文的T5屏,显示带小数位的数据要把单片机的浮点数转为十六进制HEX码。论坛上有几个好帖子分享了很好的转换软件:

http://inforum.dwin.com.cn:20080/forum.p ... E%E7%82%B9%E6%95%B0
也要介绍使用DWIN OS转换:
http://inforum.dwin.com.cn:20080/forum.php?mod=viewthread&tid=486
上面这个很好的介绍浮点数转十六进制hex码的算法。
而平常都是用stm32单片机直接发数据给迪文屏,所以分享一个C语言浮点数转十六进制hex码的函数,方便大家参考调用。

#include <stdio.h>

void FloatToByte(float floatNum,unsigned char* byteArry)            //浮点数到十六进制转换2
{
    char* pchar=(char*)&floatNum;
    for(int i=0;i<sizeof(float);i++)             //这里如果单片机用C90编译可能会有错误,把C语言编译器改用C99就可以了
    {
        *byteArry=*pchar;
        pchar++;
        byteArry++;
    }
}

int main()
{
unsigned char floatToHex[4];
float flh=3.14;

    FloatToByte(flh,floatToHex);              //浮点数flh 转为32位十六进制,放在floatToHex数组里面 ,高位在前

}


最后附上参考网上的C语言源文件txt包含有 浮点数到十六进制 和 十六进制到浮点数 的算法。

本帖子中包含更多资源

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

x
回复

使用道具 举报

0

主题

9

回帖

125

积分

注册会员

Rank: 2

积分
125
发表于 2020-9-9 20:54:17 | 显示全部楼层
用这个处理好像显示结果每次小0.1
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|迪文科技论坛 ( 京ICP备05033781号-1 )

GMT+8, 2025-4-2 13:11 , Processed in 0.033081 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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