Как интерпретировать последовательные данные, полученные модулем 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

, 👍0

Обсуждение

Похоже, у вас несоответствие скорости передачи данных в бодах., @Majenko

вы правы, посмотрев на таблицу данных. Спасибо!, @I Like

кажется, теперь это работает. Но все еще интересно, как преобразовать данные в символы. Пример: 'b' принимается как '98'. Где я могу найти соответствующий символ для получения данных?, @I Like

таблица nvm ascii, @I Like

98 и "б" - это одно и то же. Просто разные способы представления данных., @Majenko

замените %u на %c, @Juraj


2 ответа


0

Это может быть отправка данных в байтах, поэтому преобразуйте их, а затем попробуйте. Вы можете преобразовать его, выполнив команду String(данные).

,

1

Или просто сохраняйте входящие данные в виде символа и используйте одинарные кавычки при разборе входящих байтов, чтобы компилятор знал, что вы работаете с ASCII, распечатайте их на serial, и они должны быть знакомыми символами, конечно, с исправленным несоответствием скорости передачи данных

,