找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 860|回复: 7
打印 上一主题 下一主题
收起左侧

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

[复制链接]
跳转到指定楼层
楼主
ID:1054902 发表于 2023-2-28 19:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
谢谢大家
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
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*指针读写
回复

使用道具 举报

5#
ID:57657 发表于 2023-3-1 13:03 | 只看该作者
用union联合体转换或指针操作。
回复

使用道具 举报

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

使用道具 举报

7#
ID:1034262 发表于 2023-3-1 14:21 | 只看该作者
先读出放一个单字节的数组 tmp[],然后取值时强转浮点 f = ((float *)&tmp)[i]
回复

使用道具 举报

8#
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 单片机教程网

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