Как интерпретировать последовательные данные, полученные модулем Bluetooth
Я экспериментирую с hc-05, подделкой JDY-30, и меня смущают серийные данные, которые я получаю от него. Я скачал приложение под названием BlueUino для отправки команд с моего Android на мой Arduino Uno через Bluetooth. Затем я печатаю данные, которые получаю через последовательный порт, используя приведенный ниже код:
if(Serial.available() > 0){ // Проверяет, поступают ли данные с последовательного порта
state = '1'; //Serial.read(); // Считывает данные с последовательного порта0
stateData = Serial.read();
sprintf(data, "Data is %u", stateData);
Serial.println(data);
Serial.println();
}
Вот некоторые из результатов, которые я получаю в журнале, в которых я не могу разобраться. Например, отправка строки "def" не содержит последовательности данных при отправке команды "e". Кроме того, как преобразовать эти значения в символы?
Отправить команду "b"
Data is 128
Data is 0
Data is 248
Отправить команду "abc":
Data is 120 // не содержит последовательности данных типа "b"
Data is 120
Data is 120
Data is 0
Data is 120
Data is 0
Data is 248
@I Like, 👍0
Обсуждение2 ответа
Это может быть отправка данных в байтах, поэтому преобразуйте их, а затем попробуйте. Вы можете преобразовать его, выполнив команду String(данные)
.
Или просто сохраняйте входящие данные в виде символа и используйте одинарные кавычки при разборе входящих байтов, чтобы компилятор знал, что вы работаете с ASCII, распечатайте их на serial, и они должны быть знакомыми символами, конечно, с исправленным несоответствием скорости передачи данных
- Плохо отформатированные символы с использованием Bluetooth-модуля JDY-30
- Отправка целого числа> 1 байта с Android на Arduino через последовательный порт
- Serial печатается дважды?
- ПК не может получить доступ к порту HC-06 Bluetooth COM
- Возможно ли использование двух модулей с последовательным интерфейсом на одном Arduino Uno?
- модуль Bluetooth HC-05; два последовательных порта, COM4 и COM5
- HC06 правильная скорость передачи данных, но отсутствуют символы / нет AT-команд
- Как использовать HM-10 в качестве клиента и отправлять сообщения конкретным службам/характеристикам?
Похоже, у вас несоответствие скорости передачи данных в бодах., @Majenko
вы правы, посмотрев на таблицу данных. Спасибо!, @I Like
кажется, теперь это работает. Но все еще интересно, как преобразовать данные в символы. Пример: 'b' принимается как '98'. Где я могу найти соответствующий символ для получения данных?, @I Like
таблица nvm ascii, @I Like
98
и "б" - это одно и то же. Просто разные способы представления данных., @Majenkoзамените %u на %c, @Juraj