Чтение и сравнение данных из 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");
}

, 👍1

Обсуждение

это не имеет никакого отношения к EEPROM... это вопрос о сравнении строк, @jsotola

У меня такая же проблема, как и у меня, вы, наконец, исправили ее. Буду рад, если это сработает. [![Это изображение](https://i.stack.imgur.com/RVqUP.jpg)](https://i.stack.imgur.com/RVqUP.jpg), @Sigma


1 ответ


Лучший ответ:

2

Существует ОГРОМНАЯ разница между "string" и 'c' 'h' 'a' 'r'.

Вы сравниваете адрес строки "T" с числовым значением символа 'T'.

Выражение: if (value == 'T') будет намного лучше.

,

Спасибо за ответ. Как я могу прочитать и сравнить первую букву строки, хранящейся по адресу addr = 0; ?, @smc

@ShyamMohan Вы должны использовать 'T' вместо "T", чтобы сравнить значение с..., @KIIV