Должна ли скорость передачи данных для модуля Bluetooth HC-05 соответствовать serial monitor?

У меня есть этот скетч, который я получил в качестве образца. У меня подключены два HC-05. То, что я печатаю на одном последовательном мониторе, отображается на другом, но в виде вопросительных знаков. Наиболее распространенной причиной этого, как мне кажется, является несоответствие скорости передачи данных. Я не менял скорость передачи данных на HC-05, когда их приобрел, поэтому предполагаю, что они установлены по умолчанию. Я могу перевести их в командный режим и убедиться, что установлена скорость передачи данных.

Должна ли скорость передачи данных HC-05 совпадать со скоростью передачи данных последовательного монитора? Я бы предположил, что нет. Мне также интересно, является ли это проблемой с форматированием char[] при записи на последовательный дисплей.

#include <SoftwareSerial.h>
SoftwareSerial BTserial(7, 8); // прием | передача
// Подключите HC-05 TX к контакту 7 RX Arduino.
// Подключите HC-05 RX к контакту 8 TX Arduino через делитель напряжения.
//

char c = ' ';


void setup() 
{
Serial.begin(9600);
Serial.println("Arduino is ready");
Serial.println("Remember to select Both NL & CR in the serial monitor");

// Последовательная скорость HC-05 по умолчанию для режима AT равна 38400
BTserial.begin(38400);  
}

void loop()
{

// Продолжаем читать из HC-05 и отправляем в последовательный монитор Arduino
if (BTserial.available())
{  
    c = BTserial.read();
    Serial.println(c);
}

// Продолжаем читать из последовательного монитора Arduino и отправляем в HC-05
if (Serial.available())
{
    c =  Serial.read();
    BTserial.write(c);  
}
}

, 👍1

Обсуждение

Это была скорость передачи данных. Я прочитал скорость передачи данных с модулей Bluetooth, она была установлена на 9600. Я подправил код, и теперь он работает., @David Green

Оба этих комментария должны быть ответами @jsotola, @RubberDuck

@jsotola спасибо. Я так не думал., @David Green


1 ответ


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

1

Нет, они не обязательно должны совпадать.

Вы говорите о двух отдельных соединениях последовательного порта.

Скорость передачи данных между HC-05 и Arduino (BTserial) должна совпадать.

Скорость передачи данных между Arduino и вашим ПК (последовательным портом) должна совпадать.

BTserial и Serial могут использовать разные скорости передачи данных.

Проблема переполнения может возникнуть, если от HC-05 поступает много данных и недостаточно памяти для их хранения до тех пор, пока они не будут перенаправлены на последовательный порт.

schematic

,