Сопряжение ESP32 с модулем HC-05 BT

Я хочу установить микроконтроллер ESP32 в качестве ведущего и заставить его подключаться к модулю HC-05 bt. Я использую примеры SerialToSerialBTM.ino из IDE arduino, но если поместить MAC-адрес модуля bt, он напечатает «успешно подключен» в последовательном мониторе, а затем он распечатает эту ошибку, и ESP32 перезагрузится и перезапустится.

Stack smashing protect failure!

abort() was called at PC 0x400d5ee8 on core 0

Backtrace: 0x4009194c:0x3ffcfb30 0x40091b7d:0x3ffcfb50 0x400d5ee8:0x3ffcfb70 0x400fe443:0x3ffcfb90 0x400f58d2:0x3ffcfbe0 0x4008e0bd:0x3ffcfc10

Если я поставлю случайный MAC-адрес, он всегда будет печатать «успешно подключен», но не перезапускается.

Код, который я использую в среде IDE arduino, таков, может ли кто-нибудь рассказать мне больше об этой ошибке и как я могу заставить свой код работать?

#include "BluetoothSerial.h"

BluetoothSerial SerialBT;

String MACadd = "98:D3:32:11:31:37";
uint8_t address[6]  = {0x98, 0xD3, 0x32, 0x11, 0x31, 0x37};
//uint8_t address[6]  = {0x11, 0x1D, 0xA5, 0x02, 0xC3, 0x22};
String name = "HC-05";
char *pin = "1234"; //<- standard pin would be provided by default
bool connected;

void setup() {
  Serial.begin(115200);
  
  SerialBT.begin("ESP32test", true); 
  SerialBT.setPin(pin);
  Serial.println("The device started in master mode, make sure remote BT device is on!"); 
  
  connected = SerialBT.connect(address);
  
  if(connected) {
    Serial.println("Connected Succesfully!");
  } else {
    while(!SerialBT.connected(10000)) {
      Serial.println("Failed to connect. Make sure remote device is available and in range, then restart app."); 
    }
  }
  // disconnect() may take upto 10 secs max
  if (SerialBT.disconnect()) {
    Serial.println("Disconnected Succesfully!");
  }
  // this would reconnect to the name(will use address, if resolved) or address used with connect(name/address).
  SerialBT.connect();
}

void loop() {
  if (Serial.available()) {
    SerialBT.write(Serial.read());
  }
  if (SerialBT.available()) {
    Serial.write(SerialBT.read());
  }
  delay(20);
}


person Marco Ruocco    schedule 29.10.2019    source источник
comment
Если вы не получите здесь хороших ответов, вы также можете попробовать arduino.stackexchange.com.   -  person computercarguy    schedule 29.10.2019


Ответы (1)


вместо того

connected = SerialBT.connect(address)

попробуй вот так

connected = SerialBT.connect(name)
person akshay anand    schedule 04.08.2020