Чтение и сравнение данных из 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
Смотрите также:
- Как сохранить значения GPS в EEPROM Arduino?
- Arduino EEPROM сохраняет старые данные после прошивки новой программой
- Как увеличить срок службы EEPROM?
- Использование EEPROM в цикле ()
- Запустить код один раз после программирования
- Продление срока службы EEPROM
- Сохранение EEPROM после программирования на Arduino uno
- Не получается читать из / писать в EEPROM
это не имеет никакого отношения к EEPROM... это вопрос о сравнении строк, @jsotola
У меня такая же проблема, как и у меня, вы, наконец, исправили ее. Буду рад, если это сработает. [](https://i.stack.imgur.com/RVqUP.jpg), @Sigma