向ESP8266(esp-01)发AT指令部分正常多数返回ERROR是什么原因
ESP8266(ESP-01)部分AT指令返回ERROR常见原因
- AT固件版本与指令不匹配
你当前模块的AT版本为0.21.0.0、SDK版本为0.9.5,属于非常早期的ESP8266固件版本。AT+CWMODE_CUR这类带_CUR(当前生效不保存)、_DEF(永久保存)后缀的指令是AT 1.0+、SDK 2.0+版本才新增的特性,旧版固件仅支持不带后缀的AT+CWMODE类指令,调用不支持的指令就会直接返回ERROR。
你可以先尝试发送AT+CWMODE=?测试,若能正常返回参数范围即可验证该问题。 - 指令发送格式不符合要求
AT指令要求必须以回车换行(\r\n)作为结束标记,很多串口调试工具默认没有开启自动追加回车换行的功能,基础短指令(如ATE0)容错率较高可以被识别,长指令或带参数的指令就会识别失败返回ERROR。另外部分旧版固件对指令大小写敏感,建议统一使用大写格式发送指令。 - 固件功能被裁剪
ESP-01模块多数搭载1M容量的Flash,很多面向小Flash适配的旧版固件会裁剪掉WiFi配置、网络通信类的高阶功能,仅保留基础查询类AT指令,调用被裁剪功能对应的指令时就会返回ERROR。 - 供电不足
ESP8266启动射频工作时峰值电流可达200mA以上,如果直接使用USB转TTL模块自带的3.3V引脚供电,多数情况下供电能力不足,执行需要射频参与的指令时会因电压跌落运行异常返回ERROR,而不需要启动射频的基础查询指令可以正常运行。建议更换输出电流≥500mA的独立3.3V电源给模块供电测试。
内容的提问来源于stack exchange,提问作者john7
相关产品推荐
相关产品推荐

