Невозможно отправить SoftwareSerial в объект класса
У меня возникла проблема при попытке использовать SoftwareSerial в классе.
Здесь мои данные Мой класс
class MyEsp8266
{
protected:
SoftwareSerial *esp8266;
public:
MyEsp8266(SoftwareSerial *_esp8266){
esp8266 = _esp8266;
}
void begin(int baud){
esp8266->begin(baud);
}
String testAT(){
esp8266->println("AT");
return esp8266->readString();
}
}
Мой код Arduino
#include <SoftwareSerial.h>
#include "MyEsp8266.h"
// функция настройки запускается один раз, когда вы нажимаете кнопку сброса или включаете плату
SoftwareSerial _esp(10, 11);
MyEsp8266 wifi(&_esp);
void setup() {
Serial.begin(9600);
wifi.begin(115200);
Serial.println(wifi.testAT());
}
Он ничего не регистрирует, Но когда я использовал весь код в коде Arduino, это сработало.
#include <SoftwareSerial.h>
// the setup function runs once when you press reset or power the board
SoftwareSerial _esp(10, 11);
void setup() {
Serial.begin(9600);
_esp.begin(115200);
_esp.println("AT");
Serial.println(_esp.readString());
}
Спасибо за любые советы. С уважением.
@HoangHieu, 👍1
Обсуждение1 ответ
Это скорее обходной путь, чем решение, но код, который вы пытаетесь заставить работать, работал у меня после того, как я изменил его.
wifi.begin(115200);
в
wifi.begin(9600);
(извините, у меня недостаточно кармы, чтобы просто комментировать)
Привет, **бод 115200** работал со вторичным кодом., @HoangHieu
Я согласен! и при тестировании нужного вам блока кода я добился вывода тестовой строки, изменив скорость передачи данных с 115200 на 9600., @pizzaisdavid
Я думаю, это означает, что ваш модуль Wi-Fi использует скорость 9600 бод., @HoangHieu
Чтобы уточнить, я использовал Bluetooth HC-05, который, как показывает быстрый поиск в Google, может достигать 1382400. Но кроме того, я попробовал оба примера кода, второй работал без изменений (это означает, что мое оборудование может обрабатывать 115200), а затем, когда Я попробовал первый вариант, и как только я изменил скорость на 9600, все заработало. Регулировка скорости передачи данных в первом примере кода не решила проблему?, @pizzaisdavid
- AT-команда не отвечает на последовательный монитор
- Получить данные с сайта с помощью ESP8266 с помощью AT-команд
- Программное обеспечениеSerial с ESP8266
- Как связаться с ESP8266 ESP01, отправив данные через программный сериал на Arduino Uno?
- Отправить строку данных из Arduino UNO в ESP8266-01
- Последовательная связь от Arduino до ESP8266 NodeMCU работает, но от NodeMCU до Arduino не работает
- Отправьте несколько значений из Arduino Uno в nodeMCU, используя последовательный порт.
- Повреждение данных SoftwareSerial - поиск предложений
Вы забыли напечатать возвращаемое значение
wifi.testAT();
...?, @Majenkoэто моя ошибка, когда я задавал вопрос, я обновил его, @HoangHieu