迪文科技论坛

 找回密码
 立即注册
搜索
查看: 3319|回复: 11

迪文屏怎么显示采集到的浮点的电压电流值

[复制链接]

5

主题

20

回帖

122

积分

注册会员

Rank: 2

积分
122
发表于 2020-3-19 15:19:09 | 显示全部楼层 |阅读模式
求教一下,如题
回复

使用道具 举报

3

主题

111

回帖

1932

积分

金牌会员

Rank: 6Rank: 6

积分
1932
发表于 2020-3-19 16:08:03 | 显示全部楼层
楼主好,请问您现在使用的是什么型号的产品。现在T5和T5L的DGUS II系列中“数据变量显示控件”直接支持浮点数。



回复

使用道具 举报

5

主题

20

回帖

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2020-3-19 16:44:04 | 显示全部楼层
dwin123456 发表于 2020-3-19 16:08
楼主好,请问您现在使用的是什么型号的产品。现在T5和T5L的DGUS II系列中“数据变量显示控件”直接支持浮点 ...

浮点数转换工具

本帖子中包含更多资源

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

x
回复

使用道具 举报

0

主题

29

回帖

193

积分

注册会员

Rank: 2

积分
193
发表于 2020-3-19 17:30:02 | 显示全部楼层
本帖最后由 小小怪将军 于 2020-3-19 17:32 编辑
gao 发表于 2020-3-19 16:44
浮点数转换工具

你好,用这个工具转换就可以了

本帖子中包含更多资源

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

x
回复

使用道具 举报

3

主题

111

回帖

1932

积分

金牌会员

Rank: 6Rank: 6

积分
1932
发表于 2020-3-19 17:30:22 | 显示全部楼层
gao 发表于 2020-3-19 16:44
浮点数转换工具

楼主好,屏的指令数据格式是HEX格式,而浮点数有自己的定义标准,所以需要使用附件的float转hex的软件,转成屏可以识别的HEX格式的编码。

本帖子中包含更多资源

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

x
回复

使用道具 举报

0

主题

64

回帖

1533

积分

金牌会员

Rank: 6Rank: 6

积分
1533
发表于 2020-3-19 17:31:32 | 显示全部楼层
浮点数转换工具网上有可以下载的,您可以参考附件哦

本帖子中包含更多资源

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

x
回复

使用道具 举报

5

主题

20

回帖

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2020-3-19 17:38:38 | 显示全部楼层
非常谢谢各位,不过我单片机采集到数据不能经过转换工具吧,还是说要用程序把浮点数转换成16进制格式
回复

使用道具 举报

3

主题

111

回帖

1932

积分

金牌会员

Rank: 6Rank: 6

积分
1932
发表于 2020-3-19 17:49:45 | 显示全部楼层
gao 发表于 2020-3-19 17:38
非常谢谢各位,不过我单片机采集到数据不能经过转换工具吧,还是说要用程序把浮点数转换成16进制格式 ...

楼主只能参照浮点数存储格式来编写单片机程序了。

本帖子中包含更多资源

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

x
回复

使用道具 举报

45

主题

254

回帖

3414

积分

论坛元老

Rank: 8Rank: 8

积分
3414
发表于 2020-3-20 08:32:50 | 显示全部楼层
本帖最后由 舞指飞扬 于 2020-3-20 16:30 编辑
gao 发表于 2020-3-19 17:38
非常谢谢各位,不过我单片机采集到数据不能经过转换工具吧,还是说要用程序把浮点数转换成16进制格式 ...

迪文采集的是12位整数,数据存在vp, 在单片机左核,如果不做联合体,或者指针转换,可用乘法vp*255+(vp+1) ,这就是采集到的整数这个整数乘以3.3 除以4096  得到1个0.0-3.3的小数.
考虑到浮点数处理不方便,可以把数据扩展到32位整数运算.
2^32/4096/3.3=317750  因此,可以扩大100000倍运算而不溢出,同时输出5位小数
这是能够满足运算而且避免浮点运算的方法.

如果不用上面的方法,采用浮点运算,浮点数的解码还是很麻烦的,可以利用c库来帮你完成.

#include <stdio.h>

void tst_sprintf (void) {
  char buf [100];
  float pi;
pi = 3.14159;
sprintf (buf, "%11.5f", pi);//含小数点11位,5位小数,5位整数,填充0
}注意,格式对于整数格式,一定要指定整数位 8位'd '还是32位'l',默认16位,否则强制取16位
浮点数
Ieee754 单精度
地址        +0          +1           +2           +3
内容    SEEE EEEE   EMMM MMMM    MMMM MMMM    MMMM MMMM
这里
S 代表符号位,1是负,0是正
E 偏移127的幂,二进制阶码=(EEEEEEEE)-127
M 24位的尾数保存在23位中,只存储23位,最高位固定为1。
  

NaN     0xFFFFFFF   不是一个数
+INF    0x7F80000   正无穷(正溢出)
-INF    0xFF80000   负无穷(负溢出)

          0x0000000  表示0  不表示2^-127ieee规定浮点数754   不能表示下列数
2^-127   零   
+2^128 (正溢出)     
-2^128(负溢出)   
(-2^128)*(2^24-1) 不是一个数
浮点数比较大小 可能错误结果
浮点数 16777216f == 浮点数16777217f  是成立的

回复

使用道具 举报

5

主题

20

回帖

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2020-3-23 14:23:08 | 显示全部楼层
舞指飞扬 发表于 2020-3-20 08:32
迪文采集的是12位整数,数据存在vp, 在单片机左核,如果不做联合体,或者指针转换,可用乘法vp*255+(vp+1) ,这 ...

谢谢你。是用单片机采集数据,然后发送串口指令给迪文屏显示浮点值的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 11:16 , Processed in 0.059723 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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