Чтение и сравнение данных из Arduino Uno EEPROM
Я пытаюсь прочитать данные сравнения из EEPROM (Arduino UNO). Чтение работает нормально, но сравнение с помощью оператора '==' не работает должным образом.
//строка 'True' уже сохранена в EEPROM
int addr = 0;
char value = EEPROM.read(addr);
Serial.println(value);// эта строка успешно печатает букву 'T'
// но эта функция не работает
if (value == "T") {
Serial.println("foo");
}
@smc, 👍1
Обсуждение1 ответ
Лучший ответ:
▲ 2
Существует ОГРОМНАЯ разница между "string"
и 'c' 'h' 'a' 'r'
.
Вы сравниваете адрес строки "T"
с числовым значением символа 'T'
.
Выражение: if (value == 'T')
будет намного лучше.
,
@KIIV
Спасибо за ответ. Как я могу прочитать и сравнить первую букву строки, хранящейся по адресу addr = 0; ?, @smc
@ShyamMohan Вы должны использовать 'T'
вместо "T"
, чтобы сравнить значение с..., @KIIV
Смотрите также:
- Arduino EEPROM сохраняет старые данные после прошивки новой программой
- Как увеличить срок службы EEPROM?
- Использование EEPROM в цикле ()
- Запустить код один раз после программирования
- Сохранение EEPROM после программирования на Arduino uno
- Не получается читать из / писать в EEPROM
- Сохранить данные перед выключением
- Как прочитать данные, хранящиеся в EEPROM, хотя он выключен на основе простого кода, который я написал?
это не имеет никакого отношения к EEPROM... это вопрос о сравнении строк, @jsotola
У меня такая же проблема, как и у меня, вы, наконец, исправили ее. Буду рад, если это сработает. [![Это изображение](https://i.stack.imgur.com/RVqUP.jpg)](https://i.stack.imgur.com/RVqUP.jpg), @Sigma