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里。
AT+CWCOUNTRY 指令配置国家代码后,工作信道是否会依据对应法规自动调整,还是仅更新 country_code 字段而不影响信道参数?
当 country_policy 配置为 0 时,模块国家代码将随接入 AP 的不同自动变更,信道参数则完全由路由器分配决定。
模块工作信道一般由路由器下发。如果路由器具备信道跳频功能,相关信道变化可同步至模块。
AT+BLEADVPARAM 指令如何设置广播间隔为 1.6 秒?
AT+BLEADVPARAM 的最小/最大广播间隔由 <adv_int_min> 和 <adv_int_max> 参数控制,单位为 0.625 ms。
如果要设置 1.6 s 广播间隔:
1600 ms / 0.625 = 2560
2560 转换成十六进制为 0xA00,因此最小和最大广播间隔都应填 0xA00:
AT+BLEADVPARAM=0xA00,0xA00,0,0,7,0,,
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 GATT Server 时,是否支持通过 AT 指令自定义 Service UUID 或 Characteristic UUID?
不支持通过普通 BLE AT 指令动态自定义 Service UUID 或 Characteristic UUID。
ESP-AT 的 GATT 数据库在固件编译阶段已经固定创建,AT 指令仅支持对已有 Attribute 的数值进行读写,不支持动态创建、删除或修改 Service 和 Characteristic UUID。
其中,AT+BLEGATTSSETATTR 仅用于修改已有特征值的数据内容,不能创建新的 Characteristic,也不能修改 UUID。
如果确实需要定制 GATT 表,应在固件侧预先配置或重新编译固件,而不是依赖运行时 AT 指令动态修改。
在 ESP-AT 固件中,AT+BLEINIT=2 与 AT+BLUFI=1 是否可以同时使用?
不建议同时使用。AT+BLEINIT=2 启用 BLE 角色,AT+BLUFI=1 启用蓝牙配网,两项功能会占用相同的蓝牙资源,存在资源冲突,不能稳定同时启用。
推荐流程是:完成蓝牙配网后,先关闭 BLUFI 蓝牙配网功能,再启用需要的 BLE 功能,确保蓝牙任务和 GATT 资源不会互相冲突。
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 晶振,否则也无法正常休眠。