ESP-AT
ESP8266通过AT指令使用浏览器进行WiFi配网,每次发送"AT+WEBSERVER=1,80,25"之后就会报错"ERROR"无法成功创建web server
问题出现的原因:默认的 AT 固件并不支持 AT web server 的功能
解决方式:
- 基于ESP_AT工程环境通过./build.py menuconfig命令配置开启AT web server 的功能;对于 ESP8266 设备,需要关闭一些不必要的选项来存储必要的 html文件。
- 完成配置后保存,然后./build.py进行编译,编译完成后将支持AT web server 功能的固件烧录进ESP8266里。
ESP-AT 执行 "AT+CIPSTART" 阻塞,有指令可以中断吗?
- AT 层不提供强制中断
CIPSTART的命令。 - 在 TCP 连接超时之前,
AT+CIPSTART会处于阻塞状态。
规避/优化方式:
- 缩短 TCP 连接超时时间(服务端或设备侧配置)。
- 业务层避免并发下发 BLUFI / 配网类命令 与网络连接命令。
- 合理规划命令时序,避免在网络不稳定场景下频繁发起
CIPSTART。
ESP-AT 在 STA 模式下 ping 延迟较高,如何降低延迟?
- 原因说明:
ESP-AT 默认配置为 AT+SLEEP=1,即 Wi-Fi Modem-sleep 模式。在该模式下,当设备工作在 Station (STA) 模式时,Wi-Fi 射频会依据 AP 的 DTIM 周期周期性进入休眠,从而增加数据包(如 ping)的响应延迟。
解决方法:
在设备上电后,将睡眠模式关闭即可显著降低 ping 延迟:
AT+SLEEP=0
该设置会禁用 Modem-sleep,使 Wi-Fi 射频保持常开状态,从而避免因 DTIM 机制引入的延迟问题。
注意事项:
- 关闭睡眠模式会提升实时性,但同时会增加功耗
- 该设置仅在 Wi-Fi 工作于 STA 模式时生效
ESP-AT 是否支持自定义 BLE Service 和 Characteristic?
支持,并且可以完全自定义:
ServiceCharacteristicDescriptor
可以通过 AT+SYSMFG 修改 ble_data 命名空间来实现,本质上是动态修改 GATT 表,也就是 gatts_data.csv。
ESP-AT 中修改 BLE UUID 后,会立即生效吗?
不会立即生效。
BLE 的 GATT 表会在初始化时注册到协议栈中,UUID 属于 Attribute Table 的静态属性;同时,客户端在连接建立后通常还会缓存服务结构。因此修改 UUID 后,必须重新初始化 BLE,新的 UUID 才能生效。
ESP-AT 如何修改 UART 配置?
ESP-AT 提供多种修改 UART 配置的方法:
- 使用
AT+UART_CUR或AT+UART_DEF设置当前或默认 UART 波特率。 - 通过
AT+SYSMFG修改出厂默认参数。 - 重新编译 AT 固件,修改默认 UART 配置。
使用 ESP32-C3 AT 固件建立蓝牙连接后,发送 “AT+SLEEP=2” 进入 Light-sleep 失败,是什么原因?
如果出现该问题,UART0 通常会输出如下报错日志:
E (40369) at-base: shouldn't enable sleep when softap is enabled
这说明当前设备的 Wi-Fi 工作在 SoftAP 模式,而 AT 固件不支持在 SoftAP 模式下开启睡眠。
解决方法如下:
- 发送
AT+CWMODE=1,将设备切换到Station模式,关闭SoftAP。 - 再发送
AT+SLEEP=2开启Light-sleep。
此外,如果在 BLE 模式下使用 Light-sleep,还需要确保外接 32 KHz 晶振,否则也无法正常休眠。