找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2805|回复: 7
收起左侧

51单片机中将浮点数以数组的形式存入eeprom后,如何将浮点数读取出来呢?

[复制链接]
ID:1054902 发表于 2023-2-28 19:02 | 显示全部楼层 |阅读模式
谢谢大家
回复

使用道具 举报

ID:883242 发表于 2023-3-1 01:15 | 显示全部楼层
怎么存进去的就怎么取出来,多简单。别人又不知道你是怎么存进去的,怎么可能知道问题的答案?
回复

使用道具 举报

ID:213173 发表于 2023-3-1 05:55 | 显示全部楼层
浮点数(实数)长度32位,用位移的方式拆分成4个字节存入eeprom,读取后按存入时的拆分顺序还原。对于eeprom存储器单元而言,存入的只是一个字节的数据。与数据的类型无关。
回复

使用道具 举报

ID:526108 发表于 2023-3-1 08:42 | 显示全部楼层
定义一个结构体,将结构体转char*指针读写
回复

使用道具 举报

ID:57657 发表于 2023-3-1 13:03 | 显示全部楼层
用union联合体转换或指针操作。
回复

使用道具 举报

ID:123289 发表于 2023-3-1 13:56 | 显示全部楼层
任何定的类(数组、图像、浮点数、音乐……)都是按字节存放的,读取也是按字节读出的。
要点是(以图像为例):如何编码的,就如何解码。
也即你缺少(XX格式,如浮点数)编码的知识,当然就不知道如何解码了。
回复

使用道具 举报

ID:1034262 发表于 2023-3-1 14:21 | 显示全部楼层
先读出放一个单字节的数组 tmp[],然后取值时强转浮点 f = ((float *)&tmp)[i]
回复

使用道具 举报

ID:1045628 发表于 2023-3-2 13:38 | 显示全部楼层
一般我会这样定义:
typedef union
{
    float value1;
    uint32_t value2;
}pValue;
存储的时候调用value2,其他时候用value1
pValue value = {0,};
回复

使用道具 举报

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

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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