迪文科技论坛

 找回密码
 立即注册
搜索
查看: 217|回复: 5

【提问】浮点如何显示,遇到了一点问题

[复制链接]

2

主题

12

回帖

193

积分

注册会员

Rank: 2

积分
193
发表于 2024-9-24 16:37:17 | 显示全部楼层 |阅读模式
本帖最后由 fengzhao 于 2024-9-24 16:43 编辑

最近搞浮点的显示有点搞不懂,论坛的大神可以帮我看一下吗?

系统:DGUSII,MSB模式
型号:DMG10600T101_A5WTC;
设计目的:串口接收HEX格式的数据,将其显示于界面上
遇到问题:我浮点显示设置的地址分别为1000,1002两个地址,从串口收到数据后对其进行显示,串口发送的浮点数据采用IEEE 754标准,

测试用例:
  • 按照代码1:1000地址写入0C 43 0C 42,1002地址写入00 00,1003地址写入 00 00,浮点数显示140(用hex显示看里面存储:1000地址是430C、1001地址是0000、1002地址是0000、1003地址是0000)——引出第一个疑问:迪文里面是按LSB存储?单次写入两个word是无效?
  • 按照代码1:1000地址写入0C 43 00 00,1002地址写入0C 42,1003地址写入 00 00,浮点数显示140.26(用hex显示看里面存储:1000地址是430C、1001地址是420C、1002地址是0000、1003地址是0000)——引出第二个疑问:一个浮点数据要用4个地址存储?一个地址对应不是16位吗?



  1. sys_write_vp(0x1000,uart4_buf+34,2);        
  2. sys_write_vp(0x1002,uart4_buf+38,1);                 sys_write_vp(0x1003,uart4_buf+40,1);        
复制代码


回复

使用道具 举报

0

主题

117

回帖

1551

积分

金牌会员

Rank: 6Rank: 6

积分
1551
发表于 2024-9-24 17:30:14 | 显示全部楼层
单精度浮点数是32位,双精度浮点数是64位。
然后屏地址存数据是高位在前,12.0的单精度浮点数16进制表示0x41 40 00 00,存在地址里面就是,0x1000地址0x41 40,0x1001地址是0x00 00。
回复

使用道具 举报

2

主题

12

回帖

193

积分

注册会员

Rank: 2

积分
193
 楼主| 发表于 2024-9-24 17:41:23 | 显示全部楼层
紫狐 发表于 2024-9-24 17:30
单精度浮点数是32位,双精度浮点数是64位。
然后屏地址存数据是高位在前,12.0的单精度浮点数16进制表示0x4 ...

嗯嗯,我之前看指南,迪文用的是MSB,但是您看我的测试用例2,直接写入好像不可以实现,写入1002,才会对1001的地址有作用
回复

使用道具 举报

2

主题

12

回帖

193

积分

注册会员

Rank: 2

积分
193
 楼主| 发表于 2024-9-24 19:59:35 | 显示全部楼层
我下午测试了一下,发现我把代码小范围改了之后,生成的bin文件竟然是一样的
回复

使用道具 举报

0

主题

117

回帖

1551

积分

金牌会员

Rank: 6Rank: 6

积分
1551
发表于 2024-9-25 08:11:14 | 显示全部楼层
是不是生成的hex文件没有转换成bin文件,还是编译出错了呀,
u8 tmp8[10]={0x0C, 0x43, 0x00,0x00}; sys_write_vp(0x1000,(u8*)&tmp8[0],2);这样写进去0x1000就是0x0C43,0x1001地址就是0,
是不是代码写的有问题呢? 还是数组传输的问题?
回复

使用道具 举报

2

主题

12

回帖

193

积分

注册会员

Rank: 2

积分
193
 楼主| 发表于 2024-10-21 15:22:39 | 显示全部楼层
目前一个浮点数用4个地址处理了,暂时用着,后面我完成后再把代码发上来
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-5 03:18 , Processed in 0.128968 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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