禁用esp8266上的回声uart

时间:2017-05-07 14:30:42

标签: arduino esp8266 arduino-esp8266

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

  

新客户:GET url:/favicon.ico search :: Host:192.168.1.102:   连接:keep-alive:用户代理:Mozilla / 5.0(Windows NT 6.1)   AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 55.0.2883.87   Safari / 537.36:接受:image / webp,image / / *; q = 0.8:Referer:   http://192.168.1.102/admin.html:接受编码:gzip,deflate,sdch:   Accept-Language:en-US,en; q = 0.8,fa; q = 0.6 :: / favicon.ico

3 个答案:

答案 0 :(得分:1)

是。使用换行符ATE0)发送命令\r\n

enter image description here

完整的命令参考位于https://github.com/espressif/ESP8266_AT/wiki/ATE

答案 1 :(得分:0)

如果该输出出现在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);

查看每条线路的内容,并删除/注释掉您不希望在串口上看到的任何输出的线路。

答案 2 :(得分:0)

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