ESP8266不响应 AT 命令

ESP8266 doesn't respond to AT commands

本文关键字:命令 AT 不响应 ESP8266      更新时间:2023-10-16

我有一个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("startrn");
esp.printf("AT+RSTrn");
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而不是RawSerialRawSerial因为它根本不适合我,我不知道为什么。

ESP8266模块不响应出厂固件可用的任何 AT 命令。 无论如何,esp.readable()都会返回 false,esp.printf("AT+RSTrn");什么都不做。

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

像这样连接 ESP 模块 - 所以CH_PD也高。之后,您可以使用串行直通验证模块是否正常工作(将波特率设置为 115,200(。

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

回答我自己的问题...

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