Beetle-ESP32-C3无法更新BLE服务,旧设置残留如何解决?
解决ESP32-C3 BLE配置无法更新的问题
针对你遇到的Beetle-ESP32-C3上传新BLE程序后仍显示旧服务的问题,可按以下步骤排查解决:
一、彻底擦除全闪存
常规擦除可能未覆盖BLE相关的配置存储区,需用工具全量擦除:
- 打开PlatformIO终端,执行命令:
esptool.py --chip esp32c3 erase_flash - 擦除完成后,按住BOOT键再按RESET键进入下载模式,重新上传新程序。
二、修正代码中的BLE初始化逻辑
确保新代码启动时完全重置BLE栈,避免残留旧配置:
- 在
setup()函数开头添加BLE栈销毁代码,再重新初始化:void setup() { Serial.begin(115200); // 先销毁旧BLE栈 BLEDevice::deinit(); // 重新初始化BLE BLEDevice::init("你的新设备名称"); // 后续创建新服务、特征的代码... }
三、清除手机端BLE缓存
Android 13会缓存已配对/扫描过的BLE设备信息,导致显示旧配置:
- 进入手机「设置」→「蓝牙」,找到旧设备名称,点击右上角菜单选择「取消配对」或「忘记设备」;
- 重启手机蓝牙后,再重新扫描。
四、确保程序完全上传
部分小型ESP32-C3板子的复位机制可能导致程序未完全写入:
- 上传前,按住板子上的BOOT键,再按RESET键,进入强制下载模式;
- 在PlatformIO中执行「Clean」清理编译缓存,再依次执行「Build」+「Upload」最新代码。
五、验证PlatformIO配置准确性
检查platformio.ini中的配置是否匹配Beetle-ESP32-C3:
- 确保board参数正确:
board = esp32-c3-beetle; - 确认upload_port指向正确的串口(可通过系统设备管理器查看)。
内容的提问来源于stack exchange,提问作者Greg
相关产品推荐
相关产品推荐

