【问题标题】:ESP8266 doesn't respond to AT commandsESP8266 不响应 AT 命令
【发布时间】:2018-11-29 15:20:33
【问题描述】:

我有一个Nucleo F103RB 和一个Sparkfun ESP8266

我想通过 Nucleo 向 ESP8266 发送 AT 命令。

我使用的接线:

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

我使用了 Serial1 的 D8D2,因为 D0D1 引脚默认情况下不可用,因为它们由 STLink 虚拟通信端口使用。我还尝试了D10 而不是D8 以及将RST 放在3V3 上并反转TXRX

这是我在 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 模块没有响应any AT command available to the factory firmwareesp.readable() 无论如何都会返回 false,而 esp.printf("AT+RST\r\n"); 什么也不做。

电路板是全新的,LED 工作正常。

【问题讨论】:

  • ESP-01 需要的不仅仅是这 4 根电线。
  • 此时我尝试了您在网上找到的大多数接线。他们中的大多数确实只使用 4 根线并将 RST 桥接到 VCC。

标签: c++ esp8266 mbed nucleo


【解决方案1】:

回答我自己的问题...

与您可能在包括 mbed 在内的多个文档中在线找到的内容相反,使用每个字符传递的字符将不起作用,因为该模块将逐个解释每个字符。使用puts 而不是putc 解决了我的问题。

【讨论】:

    【解决方案2】:

    连接 ESP 模块 like this - 所以 CH_PD 也为高电平。之后就可以使用SerialPassthrough验证模块是否工作了(波特率都设置为115200)。

    还可以选择将模块的 RESET 引脚连接到数字引脚。用于复位 ESP 模块(拉低,然后拉高复位)。

    【讨论】:

    • 感谢您的回答。不幸的是,它似乎不起作用。虽然我重置时确实有一条消息说“Ai-Thinker Technology Co. Ltd. Ready”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-26
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    相关资源
    最近更新 更多