gpt4 book ai didi

c++ - 从 EEPROM 读取并打印到串口

转载 作者:行者123 更新时间:2023-11-28 04:10:25 24 4
gpt4 key购买 nike

我想按照 Arduino 函数从 EEPROM 地址读取并返回一个字符串,我可以在我的串行监视器上打印该字符串。

char EEPROM_read(int addr, int length_str) {
char letter[length_str];
for (int i=0; i<length_str; i++) {
letter[i] = EEPROM.read(addr);
addr ++;
}
//Serial.println(letter); This works inside the function, but I need it to work outside of the function
return letter;
}


serial_number = EEPROM_read(0,11);
Serial.println(serial_number); //This does not work
String SN(serial_number);
Serial.println(SN); //This does not work

最佳答案

如果要返回 RAM 中的文本,则需要 RAM 中的空间。在 Arduino 上和您的情况下,动态内存分配是一个次优的想法,因此您最好提前提供该空间:

 char* EEPROM_read(int addrE, char* buf, int length_str) 
{
for (int i=0; i<length_str; i++) {
buf[i] = EEPROM.read(addrE++);
if (buf[i] == 0) break;
}
return buf;
}

void setup() {
Serial.begin(9600);

char text[20];
Serial.println(
EEPROM_read(0, text, sizeof(text))
);
}

在此示例中,变量 text 仅在 setup 中可用,您应该能够使其在示例范围之外可用。

关于c++ - 从 EEPROM 读取并打印到串口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57930787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com