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"); ничего не делает.

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


person ALDSMQJF    schedule 20.06.2018    source источник
comment
ESP-01 нужно больше, чем эти 4 провода.   -  person gre_gor    schedule 20.06.2018
comment
На этом этапе я перепробовал большинство проводов, которые можно найти в Интернете. Большинство из них используют только 4 провода и соединяют RST с VCC.   -  person ALDSMQJF    schedule 20.06.2018


Ответы (2)


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

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

person Jan Jongboom    schedule 21.06.2018
comment
Спасибо за ответ. К сожалению, похоже, что это не работает. Хотя у меня есть сообщение о том, что Ai-Thinker Technology Co. Ltd. готова, когда я его перезагружу. - person ALDSMQJF; 21.06.2018

Отвечая на свой вопрос ...

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

person ALDSMQJF    schedule 21.06.2018