Arduino由于使用ESP8266简单的AT命令

问题描述:

我有一个Arduino DUE并希望将它连接到ESP8266板,然后在串行命令行上使用简单的“AT”命令测试连接。我在网上写了很多,但是这个话题有很多不同的答案,他们都没有直接解决我的问题。Arduino由于使用ESP8266简单的AT命令

我用两根电源线正确设置了eps8266。他们甚至来自不同的电源,所以不应该存在特别电路板电源的问题。

我认为问题是在不同的波特率的地方。如果我选择9600波特通过USB从Arduino连接到PC,74880从特定电路板连接到DUE,至少在esp电路板必须重新启动(当我强制它时)的情况下正确地获得错误信息。

ETS 2013年1月8日,第一个原因:1,启动模式:(3,6)

负载0x40100000,LEN 1396,室16
尾巴4 CHKSUM 0x89上 负载0x3ffe8000,LEN 776,室4
尾巴4 CHKSUM 0xe8负载0x3ffe8308,LEN 540,房间4
尾8 CHKSUM将0xC0 CSUM将0xC0

第二引导版本:1.4 (B1)
SPI速度:40MHz的
SPI国防部
乐:52mn

的代码如下:

//always high 
int CH_PD_8266 = 53; 

void setup() { 
    Serial.begin(9600); 
    Serial3.begin(74880); //--> at least error code is shwon correctly 

// Serial3.begin(115200); //error code is gibberish 
    pinMode(CH_PD_8266, OUTPUT); 
    digitalWrite(CH_PD_8266, HIGH); 
} 

void loop() { 
    while (Serial.available() > 0) { 
    char a = Serial.read(); 
    Serial3.write(a); 

    //Write back to see if it even comes perfect 
    //Serial.write(a); 
    } 

} 

void serialEvent3() { 
    while (Serial3.available() > 0) { 
    char a = Serial3.read(); 
    // Serial.write('A'); 
    Serial.write(a); 
    } 
} 

任何帮助将非常感激。

+0

你确定有AT固件闪存到你的ESP8266吗?如果您使用Arduino IDE + ESP8266插件直接对ESP8266进行编程,那么您就覆盖了'AT固件',因此它不再对AT命令做出响应。 –

我不得不做一个变通方法,在这个问题描述:

Why do I need to change the Baudrate after I send a Reset to the ESP8266?

另外,ESP是货币的变化非常敏感。有时需要通过从外部注入少量电压(通过电压表......)稍微推动一下。我这样做后,沟通就开始了。

这不是一个错误。这只是一个boot message

AT固件可能使用与引导加载程序不同的波特率。
您应该尝试不同的波特率,并使用简单的AT命令进行测试。
当你找到正确的波特率时,启动信息将是垃圾信息,但AT命令将起作用。

+0

谢谢,但是在我的Arduino到PC的波特率和ESP和Arduino之间的波特率之间有一个特殊的比例?例如PC的波特率必须比esp的波特率高两倍。 – Kev1n91

+0

不需要任何比例,但是如果有大量的ESP数据发送到PC的波特率应该更高,这样串行缓冲区不会堵塞。 –

+0

请记住,ESP始终以74880波特启动,打印启动消息,然后将控制权交给AT固件,这通常可能切换到另一个波特率。不确定那是什么,但9600或115200是最有可能的,取决于哪个AT固件被加载! – cranphin