ESP8266 не отвечает на AT-команды

у меня есть Nucleo F103RB и Sparkfun ESP8266.

Я хотел посылать AT-команды на ESP8266 через Nucleo.

Проводка, которую я использовал:

TX  => D8
RX  => D2
GND => GND
3V3 => 3V3

я использовал D8 а также D2 Serial1 потому что D0 а также D1 контакты по умолчанию недоступны, так как они используются виртуальным коммуникационным портом STLink. Я тоже пробовал D10 вместо D8 а также положить RST на 3V3 и инвертирование TX а также RX

Вот код, который я имею на mbed:

#include "mbed.h"
Serial pc (D1, D0);
Serial esp(D8, D2);

int main()
{
pc.baud(115200);
esp.baud(115200);
wait(0.1);
pc.printf("start\r\n");
esp.printf("AT+RST\r\n");
while(true) {
if(pc.readable()) {
char c = pc.getc();
pc.putc(c); //local echo
esp.putc(c);
}
if(esp.readable()) {
pc.printf("reading esp");
char c = esp.getc();
pc.putc(c);
}
}
}

я использовал Serial вместо RawSerial так как RawSerial не работал для меня вообще, я не уверен, почему.

Модуль ESP8266 не отвечает на любая команда AT доступна для заводской прошивки. esp.readable() возвращает false независимо от того, что и esp.printf("AT+RST\r\n"); ничего не делает

Плата новая и светодиоды работают нормально.

0

Решение

Проводной модуль ESP как это — так что CH_PD тоже высоко. После вы можете использовать SerialPassthrough чтобы проверить, работает ли модуль (установите скорость передачи в 115 200 на обоих).

При желании также подключите вывод RESET модуля к цифровому выводу. Полезно для сброса модуля ESP (потяните низко, затем потяните высоко для сброса).

0

Другие решения

Отвечая на мой собственный вопрос …

В отличие от того, что вы можете найти в Интернете в нескольких документах, в том числе в mbed, использование сквозных символов не будет работать, поскольку модуль будет интерпретировать каждый символ один за другим. С помощью puts вместо putc решил мою проблему.

0

По вопросам рекламы [email protected]