У меня есть 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");
ничего не делает.
Плата новая, светодиоды работают нормально.