Не удается проверить равенство со строкой полученной от модуля bluetooth
Я пытаюсь держать программу в цикле до тех пор, пока пользователь не введет "ок" в приложении Bluefruit Connect. Я использую функцию ReadString() для чтения из объекта bluetooth (ble). Перед этим циклом моя строковая командная переменная инициализируется как пустая. Вот мой код:
while(!command.equalsIgnoreCase("ok"))
{
while(ble.available())
command = ble.readString()
}
Я подтвердил, что могу получать данные, так как могу выводить командную переменную на последовательный монитор. Почему условие для этого цикла всегда возвращает true (т. е. почему строковая командная переменная никогда не равна строковому литералу "ok", игнорируя регистр)?
@Cem Adatepe, 👍1
Обсуждение0
Смотрите также:
- Как разделить входящую строку?
- Как вывести несколько переменных в строке?
- Можно ли измерить скорость акселерометром? Насколько точно?
- форматирование строк в Arduino для вывода
- Очень простая операция Arduino Uno Serial.readString()
- Arduino Pro Micro, получить данные с контакта Tx?
- DateTime в строку
- Как преобразовать строку в массив байтов
выведите длину переменной команды на последовательный монитор ... это может быть не то, что вы ожидаете ... всегда делайте это при отладке кода, @jsotola
@jsotola Wow вы правы. Когда я отправляю строку "ok", она говорит, что длина равна 3. Это символ новой строки, отправленный с ним, или что-то еще? Как я буду удалять этот дополнительный символ в строке?, @Cem Adatepe
это может помочь ... https://majenko.co.uk/blog/reading-serial-arduino, @jsotola
@jsotola Теперь работает! Большое вам спасибо!, @Cem Adatepe