EEPROM地址问题-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 719|回复: 8

[已解决] EEPROM地址问题

[复制链接]
发表于 2022-2-12 14:28 | 显示全部楼层 |阅读模式
本帖最后由 otter 于 2022-2-12 23:18 编辑

大佬们我又遇到问题了,我试图用EEPROM存储两个float类型值,按照教程使用共同体写入,结果发现只有0-4的地址可以顺利读写?也就是我现在只能存入一个float
随机尝试了几个不同的地址,都无法存入。
使用的是UNO
完整代码连库都在附件里了,希望有大佬能帮帮我。
顺利解决了问题请大佬喝奶茶!!
微信截图_20220212142720.png

129wifi.zip

33.04 KB, 下载次数: 2

发表于 2022-2-12 14:41 | 显示全部楼层
数组越界了啊,4-8 那一段访问 union.b[n] 越界了
 楼主| 发表于 2022-2-12 14:44 | 显示全部楼层
t3486784401 发表于 2022-2-12 14:41
数组越界了啊,4-8 那一段访问 union.b[n] 越界了

太感谢您了,请问能说详细一点吗?
 楼主| 发表于 2022-2-12 14:47 | 显示全部楼层
t3486784401 发表于 2022-2-12 14:41
数组越界了啊,4-8 那一段访问 union.b[n] 越界了

我回去试试看,搞定了请大佬喝奶茶
 楼主| 发表于 2022-2-12 14:51 | 显示全部楼层
t3486784401 发表于 2022-2-12 14:41
数组越界了啊,4-8 那一段访问 union.b[n] 越界了

有个疑问,我的定义是b[4] 那么访问的时候 for(int n=4;n<8;n++)就是 4,5,6,7,这样为什么会越界呢
 楼主| 发表于 2022-2-12 14:54 | 显示全部楼层
共同体定义如下:

union data1 {
  float K;
  byte k[4];
};

data1 co1;

union data2 {
  float B;
  byte b[4];
};

data2 co2;

union data3 {
  float K2;
  byte k2[4];
};

data3 co3;

union data4 {
  float B2;
  byte b2[4];
};

data4 co4;

发表于 2022-2-12 15:22 | 显示全部楼层
本帖最后由 t3486784401 于 2022-2-12 15:28 编辑
otter 发表于 2022-2-12 14:51
有个疑问,我的定义是b[4] 那么访问的时候 for(int n=4;n

定义了数组 b[4],访问只能 0~3,超过了就是越界。

你如果希望把 b[4] 放在 EEPROM(4-7)位置,应该写作类似:

EEP[n+4] = b[n],或者 EEP[n] = b[n-4]


2022-02-12_152545.png
 楼主| 发表于 2022-2-12 22:59 | 显示全部楼层
t3486784401 发表于 2022-2-12 15:22
定义了数组 b[4],访问只能 0~3,超过了就是越界。

你如果希望把 b[4] 放在 EEPROM(4-7)位置,应该写作 ...

啊啊啊我懂了,,反复看了几遍可能是熬夜太多了没看出来,要聪明还是得早睡啊
大佬把支付宝账号发我,请你喝奶茶
发表于 2022-2-12 23:27 | 显示全部楼层
otter 发表于 2022-2-12 22:59
啊啊啊我懂了,,反复看了几遍可能是熬夜太多了没看出来,要聪明还是得早睡啊
大佬把支付宝账号发我, ...

哈哈,已经加你好友
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-12-1 08:21 , Processed in 0.083489 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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