【问题标题】:Disable echo on esp8266 uart在 esp8266 UART 上禁用回显
【发布时间】:2017-05-09 16:13:23
【问题描述】:

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

新客户端:GET url: /favicon.ico search: : Host: 192.168.1.102: 连接:保持活动:用户代理: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: 接受语言:en-US,en;q=0.8,fa;q=0.6: : /favicon.ico

【问题讨论】:

  • 显示一些示例输出。你的具体设置是什么?你有一个通过串口连接到 ESP8266 的 Arduino,还是使用 Arduino-Framework 直接刷新芯片?您正在使用哪些库可能会产生输出?

标签: arduino esp8266 arduino-esp8266


【解决方案1】:

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

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

【讨论】:

  • 我认为他没有使用 AT 命令。他说,他正在使用 Arduino 对芯片进行编程。
  • 我为澄清请求写了评论。
【解决方案2】:

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

查看每一行将写入的内容,并删除/注释掉您不希望在串行端口上看到的任何输出的行。

【讨论】:

  • 感谢您的帮助,但没有 println 会产生这样的输出。
  • 你能把你上传到ESP芯片的代码贴出来吗?
【解决方案3】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-23
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 2020-04-22
    • 1970-01-01
    相关资源
    最近更新 更多