在EEPROM上,PIN码1234被写为字节。现在,我想读出密码,并将其写入char类型的数组,并在串行监视器上打印出来,但是我只能像图中那样得到这个矩形。但是,如果我使用“Serial.print(EEPROM.read(i));”将其直接打印到串行监视器上,我得到“1234”。
serial monitor
const byte PINLENGTH = 4;
char pinCode[PINLENGTH+1];
void setup() {
Serial.begin(9600);
Serial.print(pinCode[0]);
for ( int i = 0; i < PINLENGTH; ++i ){
pinCode[i] = (char) EEPROM.read(i);
Serial.print(pinCode[i]);
}}
void loop() {
}
最佳答案
尝试这个:
const byte PINLENGTH = 4;
char pinCode[PINLENGTH+1];
void setup() {
Serial.begin(9600);
for ( int i = 0; i < PINLENGTH; ++i ){
pinCode[i] = (char) EEPROM.read(i) + '0'; // <- Note +'0'
Serial.print(pinCode[i]);
}}
这里的要点是从EEPROM读取的值可能是二进制的,添加
'0'
会将它们转换为ASCII。关于c++ - 将代码从EEPROM写入char数组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58395784/