Arduino将使用ESP8266简单AT命令

Arduino将使用ESP8266简单AT命令,arduino,esp8266,baud-rate,arduino-due,arduino-esp8266,Arduino,Esp8266,Baud Rate,Arduino Due,Arduino Esp8266,我有一个Arduino到期,希望将其连接到ESP8266板,然后在串行命令行上用一个简单的“AT”命令测试连接。我在互联网上写了很多文章,但是关于这个话题有很多不同的答案,没有一个能直接解决我的问题 我使用两根电源线正确设置了eps8266。它们甚至来自不同的电源,因此esp板的电源应该没有问题 我认为问题在于不同的波特率。如果我选择9600波特用于通过USB从Arduino连接到PC,选择74880用于从esp板连接到DUE,我至少可以在esp板必须重新启动时(当我强制启动时)正确获得错误消息

我有一个Arduino到期,希望将其连接到ESP8266板,然后在串行命令行上用一个简单的“AT”命令测试连接。我在互联网上写了很多文章,但是关于这个话题有很多不同的答案,没有一个能直接解决我的问题

我使用两根电源线正确设置了eps8266。它们甚至来自不同的电源,因此esp板的电源应该没有问题

我认为问题在于不同的波特率。如果我选择9600波特用于通过USB从Arduino连接到PC,选择74880用于从esp板连接到DUE,我至少可以在esp板必须重新启动时(当我强制启动时)正确获得错误消息

ets 2013年1月8日,rst原因:1,启动模式:(3,6)

加载0x40100000,镜头1396,房间16
尾部4 chksum 0x89 加载0x3ffe8000,透镜776,4号房间
尾部4 chksum 0xe8加载0x3ffe8308,透镜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);
  }
}

非常感谢您的帮助。

这不是错误。这只是一个小问题

AT固件可能使用与引导加载程序不同的波特率。
您应该尝试不同的波特率,并使用简单的
AT
命令进行测试。

当您找到正确的波特率时,启动消息将是垃圾,但AT命令将起作用。

这不是错误。这只是一个小问题

AT固件可能使用与引导加载程序不同的波特率。
您应该尝试不同的波特率,并使用简单的
AT
命令进行测试。

当您找到正确的波特率时,启动消息将是垃圾,但AT命令将起作用。

我必须做一个解决方法,如本问题所述:


此外,ESP对货币变化非常敏感。有时它需要从外部注入一点电压(通过电压表…)来推动。完成此操作后,通信开始。

我必须进行一项变通,如本问题所述:


此外,ESP对货币变化非常敏感。有时它需要从外部注入一点电压(通过电压表…)来推动。完成此操作后,通信开始。

谢谢,但我的Arduino到PC的波特率与ESP和Arduino之间的波特率之间是否存在特殊比例?e、 到pc的波特率必须是到esp的波特率的两倍?不需要任何比例,但是如果有大量数据从esp发送,到pc的波特率应该更高,这样串行缓冲区就不会阻塞。请记住,esp始终以74880波特启动,打印启动消息,然后将控制权交给AT固件,后者很可能切换到另一个波特率。不确定是哪个,但最有可能是9600或115200,这取决于加载了哪个AT固件!所以我建议:在代码中稍等,让ESP完全启动。然后发送一个AT命令,后跟一个换行符,看看ESP是否对此做出响应,用9600和115200波特试试这个。我用这些可能性尝试了一下,但仍然没有成功。稍后我将尝试使用不同的esp模块,看看是否是硬件错误谢谢,但我的Arduino到PC的波特率与esp和Arduino之间的波特率之间是否存在特殊比例?e、 到pc的波特率必须是到esp的波特率的两倍?不需要任何比例,但是如果有大量数据从esp发送,到pc的波特率应该更高,这样串行缓冲区就不会阻塞。请记住,esp始终以74880波特启动,打印启动消息,然后将控制权交给AT固件,后者很可能切换到另一个波特率。不确定是哪个,但最有可能是9600或115200,这取决于加载了哪个AT固件!所以我建议:在代码中稍等,让ESP完全启动。然后发送一个AT命令,后跟一个换行符,看看ESP是否对此做出响应,用9600和115200波特试试这个。我用这些可能性尝试了一下,但仍然没有成功。稍后,我将尝试使用不同的esp模块,以查看是否是硬件错误。您确定ESP8266中有
固件中的
闪现吗?如果您使用Arduino IDE+ESP8266插件直接编程ESP8266,那么您会重写
AT固件
,这样它就不会再响应AT命令。您确定有
AT固件
闪存到您的ESP8266中吗?如果您使用Arduino IDE+ESP8266插件直接编程ESP8266,那么您将在固件上重写
,这样它将不再响应AT命令。