找回密码
 立即注册
查看: 2736|回复: 28

关于STC EEPROM 读写小数点数据的问题

[复制链接]
  • 打卡等级:以坛为家I
  • 打卡总天数:269
  • 最近打卡:2025-03-06 08:32:57

19

主题

59

回帖

790

积分

高级会员

积分
790
发表于 2023-10-1 11:03:05 | 显示全部楼层 |阅读模式
关于STC  EEPROM 读写小数点数据的问题:
IAP_DATA  这个好像只能字节类型,无符号char型,
如果我要读写带小数的数据怎么办

请高手帮忙解读一下,谢谢了,顺祝大家节日快乐!!!

回复

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2023-10-1 11:12:49 | 显示全部楼层
IAP_DATA 这个寄存器是8位的,里面放啥 ?
===就放 0x00  ~ 0xff
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2023-10-1 11:13:38 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2023-10-1 11:16:07 | 显示全部楼层
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:269
  • 最近打卡:2025-03-06 08:32:57

19

主题

59

回帖

790

积分

高级会员

积分
790
发表于 2023-10-1 17:17:36 | 显示全部楼层
只能放0--255的数,比如我要放超256就不行,还有放比如说10.2这个带小数点的也不行
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:偶尔看看III
  • 打卡总天数:55
  • 最近打卡:2025-05-02 08:32:59

717

主题

1万

回帖

1万

积分

管理员

积分
15617
发表于 2023-10-1 17:47:18 | 显示全部楼层
自己定义转换格式存放
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:522
  • 最近打卡:2025-05-02 00:29:54

10

主题

1159

回帖

5121

积分

论坛元老

积分
5121
发表于 2023-10-1 19:20:54 | 显示全部楼层
在EEPROM中保存浮点数的方法
任何定的类(数组、图像、浮点数、音乐……)都是按字节存放的,读取也是按字节读出的。
要点是(以图像为例):如何编码的,就如何解码。
也即你缺少(XX格式,如浮点数)编码的知识,当然就不知道如何解码了。

保存一个16位数据,分两个字节写入即可,32位的数(长整形或浮点数)就要分4个字节写入。
浮点数(实数)长度32位,用位移的方式拆分成4个字节存入eeprom,读取后按存入时的拆分顺序还原。对于eeprom存储器单元而言,存入的只是一个字节的数据。与数据的类型无关。

用union联合体转换或指针操作。你这样移位可以直接用union联合体代替,不需要移位。
一般我会这样定义:

typedef union
{
    float value1;
    unsigned char value2[4];
} pValue;

存储的时候调用value2,其他时候用value1
pValue pVal;

pVal.value1 = 10.3;

IapProgram(0x0000,pVal.value2[0]);
IapProgram(0x0001,pVal.value2[1]);
IapProgram(0x0002,pVal.value2[2]);
IapProgram(0x0003,pVal.value2[3]);


回复 支持 5 反对 0

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:269
  • 最近打卡:2025-03-06 08:32:57

19

主题

59

回帖

790

积分

高级会员

积分
790
发表于 2023-10-3 10:53:15 | 显示全部楼层
angm*** 发表于 2023-10-1 19:20
在EEPROM中保存浮点数的方法
任何定的类(数组、图像、浮点数、音乐……)都是按字节存放的,读取也是按字 ...

谢谢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:217
  • 最近打卡:2024-11-15 09:12:27

29

主题

722

回帖

2790

积分

荣誉版主

积分
2790
发表于 2023-10-3 14:40:11 | 显示全部楼层
你 搞清楚 浮点数(小数)在内存中是怎么存储的



存放在eeprom和  存放在内存中是一样的


就是连续的四个  字节   32位


截图202310031438071127.jpg

回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民III
  • 打卡总天数:183
  • 最近打卡:2025-04-28 10:14:30
已绑定手机

0

主题

42

回帖

1322

积分

金牌会员

积分
1322
发表于 2023-10-7 15:50:48 | 显示全部楼层
学习了。
回复

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-2 13:06 , Processed in 0.190654 second(s), 106 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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