Я хочу установить микроконтроллер 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-адрес, он всегда печатает «успешно подключено», но не перезапускается.
Код, который я использую вArduino IDE это, кто-нибудь может рассказать мне больше об этой ошибке и как я могу заставить мой код работать?
#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);
}