При подключении Bluetooth, на входе проскакивает одна и та же цифра - что это может быть?

alexnf
Offline
Зарегистрирован: 13.03.2015

Нужно менять настройки устройства на Ардуино, для изменения и контроля текущих  - использую блютуз модуль.

Скетч раз в пол секунды, передает все текущие значения настроек, строкой через зяпятую, а при получении значений меняет их в программе.

Заметил баг, что при подключении через блютуз например к телефону, блютуз-модуль шлет ардуине число "64247570"

сразу думал, что это косяк в проге, которой я общаюсь с ардуинойс телефона, но потом попробовал подключиться обычным терминалом и получил тот же результат!

Указанное значение проскакивает только 1 раз, потом в процессе работы и при отключении - все нормально.

alexnf
Offline
Зарегистрирован: 13.03.2015

выявил вот такой вставкой:

  if (Serial.available()) {                //при наличии входящих данных
    BluetoothAndroid = Serial.parseInt();  //записываем их в переменную

    Serial.println(BluetoothAndroid); ///  отладка - выводим принятые значения
}

 

alexnf
Offline
Зарегистрирован: 13.03.2015

вот пример скетча, выдающего при подключении:

642475

7

0

 

 

int BluetoothAndroid = 1; // Данные пришедшие по Bluetooth от Android приложения.


void setup() {
Serial.begin(9600);                // инициализация порта для обмена данными по блютуз
  Serial.setTimeout(100);            // тайм-аут чтения данных с шины, что бы прочитать полное значение (возможно??)


}

void loop() {
if (Serial.available()) {                //при наличии входящих данных
    BluetoothAndroid = Serial.parseInt();  //записываем их в переменную

    Serial.println(BluetoothAndroid); ///  отладка - выводим принятые значения
}
}

 

alexnf
Offline
Зарегистрирован: 13.03.2015

так и не поборол проблему...

обошел, исключением данных значений при приеме

b707
Offline
Зарегистрирован: 26.05.2017

вы бы вместо Serial.parseInt(); прочитали данные с модуля посимвольно командой Serial.read() и посмотрели, что там на самом деле передается.

Вообще, читать с модуля все подряд и считать это нужными данными - путь к ошибками в программе.