HC06 правильная скорость передачи данных, но отсутствуют символы / нет AT-команд

У меня проблема со связью между моим последовательным монитором и моим модулем BT HC06. Я могу отправлять символы ascii со своего телефона с подключением BT на свой локальный последовательный монитор. Когда я отправляю символы с моего локального последовательного монитора на свой модуль BT, я получаю что-то вроде этого: AT -> U или 3 -> 3

У меня возникла эта проблема, так как я изменил скорость передачи данных с 9600,0,0 на 9600,0,1

Код:

#include <SoftwareSerial.h>

SoftwareSerial BTSerial(10, 11); // Прием | Передача

void setup()
{
  pinMode(9, OUTPUT);  // этот контакт потянет контакт 34 HC-05 (ключевой контакт) на ВЫСОКИЙ уровень, чтобы переключить модуль в режим AT
  digitalWrite(9, HIGH);
  Serial.begin(9600);
  Serial.println("Enter AT commands:");
  BTSerial.begin(9600);  // HC-05 скорость по умолчанию в AT-команде подробнее
}

void loop()
{

  // Продолжаем читать с HC-05 и отправляем в Arduino Serial Monitor
  if (BTSerial.available())
    Serial.write(BTSerial.read());

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

, 👍0


2 ответа


1

Если я правильно вас понял: вы изменили настройки UART на модуле HC05 и теперь не можете подключиться к HC-06.

Вы используете SoftwareSerial для подключения, так как на UNO у вас есть только один порт HardwareSerial. SoftwareSerial позволяет настроить только скорость передачи данных. Есть обходные пути https://forum.arduino.cc/index.php?topic=251764 , но вы также можете написать небольшой скетч, который переконфигурирует ваш UART HC06 на 9600,0,0, используя HardwareSerial, который можно настроить на новые настройки четности для подключения к HC-06.

Что-то вроде этого

void setup() 
{
  //Serial.begin(9600, SERIAL_8O1);
  Serial.begin( 9600, SERIAL_8E1 );

  // я настраиваю не на 9600,0,0, а на 9600,1,0
  // Потому что Arduino использует стоповый бит, установленный по умолчанию.
  Serial.println( "AT+UART=9600,1,0" );
}

void loop() {}

Я не могу попробовать эту программу, так что это только пример того, как перезагрузить ваш HC-05.

По причине; перед загрузкой скетча необходимо подключить HC-05 к аппаратным последовательным контактам (0,1).

,

2

Извините, мой вопрос не был простым для понимания. Ваше решение не сработало для меня. Я нашел еще одну библиотеку, где можно добавить бит четности: https://github.com/ledongthuc/CustomSoftwareSerial

Мне это подходит.

Спасибо за помощь :)

,