在 esp8266 uart 上禁用 echo

Disable echo on esp8266 uart

有没有办法在 ESP8266 的 uart 接口上禁用 echo?
我使用 Arduino 对芯片进行编程,所以我不能使用 AT 命令,因为我将 Arduino 框架上传到芯片中。 每次客户端尝试连接到模块时,它都会在串口上产生一些回声,如下所示:

New client: GET url: /favicon.ico search: : Host: 192.168.1.102: Connection: keep-alive: User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36: Accept: image/webp,image/,/*;q=0.8: Referer: http://192.168.1.102/admin.html: Accept-Encoding: gzip, deflate, sdch: Accept-Language: en-US,en;q=0.8,fa;q=0.6: : /favicon.ico

是的。发送带有换行符的命令 ATE0 (\r\n).

完整的命令参考可在 https://github.com/espressif/ESP8266_AT/wiki/ATE 获得。

如果该输出出现在 ESP8266 的串行端口上,那么它是由您从 Arduino 加载到芯片上的草图生成的 IDE。

因此,如果您不需要输出,则需要从草图中删除相关的输出语句。输出看起来类似于 WiFiWebServer 示例草图生成的内容,因此我将在此处用作示例。如果您使用另一种,请根据您的情况调整说明。

在草图中,寻找像 Serial.printlnSerial.write 这样的语句,例如在 loop() 函数的开头,您会发现:

void loop() {
  // listen for incoming clients
  WiFiClient client = server.available();
  if (client) {
    Serial.println("new client");
    // an http request ends with a blank line
    boolean currentLineIsBlank = true;
    while (client.connected()) {
      if (client.available()) {
        char c = client.read();
        Serial.write(c);

查看每一行将写入的内容,并remove/comment列出您不希望在串行端口上看到的任何输出的行。

我找到了解决方案: 回声由 ESP8266WebServer.h 库生成。我刚刚在 Parsing.cpp 文件中删除了一些 DEBUG_OUTPUT.print() & DEBUG_OUTPUT.println() 语句,现在一切正常。 谢谢大家。