(Uno) For循环多个变量赋值(或合并变量)-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 2259|回复: 7

[未解决] (Uno) For循环多个变量赋值(或合并变量)

[复制链接]
发表于 2021-8-25 01:24 | 显示全部楼层 |阅读模式
请教各位大虾:程序中有几十个变量向EEPROM取值,变量定义为ER1、ER2、ER3..........ER50,变量对应的EEPROM地址从1至50。
怎样用For循环一次性读取EPPROM中50个值 给到对应的变量并打印到串口?

以下红色字体的是报错代码:
for (int i = 1; i <= 50; i = i + (1)) {
EEPROM.get((i ), String(ER + i));
Serial.println(String(String("E") + String(String(i) + String(":"))) + String(ER + i));

发表于 2021-8-25 01:55 | 显示全部楼层
听说过数组这个东西吗?你该不会是写了50行代码来声明变量吧···(比如
  1. int ER1;
  2. int ER2;
  3. ···
  4. int ER50;
复制代码


而且,你觉得字符串"ER1"和变量名ER1是一回事吗?更何况String(ER+1)是错误写法
发表于 2021-8-25 02:12 | 显示全部楼层
代码差不多应该长这个样子:
  1. typedef int myDataType; //自定义数据类型
  2. myDataType ER[50];
  3. myDataType temp;
  4. int i;
  5. int addr;
  6. ···
  7. addr = 0; //设置EEPROM读取的起始地址
  8. for (i=0;i<50;i++){
  9.   EEPROM.get(addr, temp); //读EEPROM
  10.   ER[i] = temp; //装入数组
  11.   addr += sizeof(myDataType); //更新下一个读取地址
  12. }
复制代码

再看不懂就乖乖学C/C++
附EEPROM.get函数的使用说明
https://www.arduino.cc/en/Reference/EEPROMGet

点评

有时真觉得新手的脑洞一个比一个大···  发表于 2021-8-25 02:16
 楼主| 发表于 2021-8-25 19:12 | 显示全部楼层
frankhan747 发表于 2021-8-25 01:55
听说过数组这个东西吗?你该不会是写了50行代码来声明变量吧···(比如


感谢回复
 楼主| 发表于 2021-8-25 19:13 | 显示全部楼层
frankhan747 发表于 2021-8-25 02:12
代码差不多应该长这个样子:

再看不懂就乖乖学C/C++

C++没学过,写过VB,您已写得很清楚了,感谢您

点评

VB有点老了···嵌入式还是C在当家  发表于 2021-8-25 20:24
发表于 2022-6-22 09:31 | 显示全部楼层
怎么让字符串名字指向变量名的值,其它语言都可以,就arduino特殊
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-11-28 02:47 , Processed in 0.086890 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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