常见问题与解决
提示!
在遇到问题时,推荐大家参考:ESP-FAQ,这是由乐鑫官方推出的常见问题汇总。它帮助用户快速检索常见问题,并通过简洁的解答解决疑惑。常见问题涉及的领域包括:开发环境、应用方案、软件平台、硬件相关问题以及测试相关内容。
索引
1. 头文件无法跳转,没有代码提示
问题:
我们使用VS Code打开ESP32项目,有时我们的代码头文件无法跳转,写代码没有代码提示。
无法跳转: 无有效代码提示:
解决方案:
先编译代码:
然后找到build
下的compile_commands.json
文件:
右键复制绝对路径:
然后打开命令面板:
找到这一项:
将绝对路径复制到编译命令:
然后就能正常跳转到源码了
代码提示也有了:
2. 开发板在Windows下可以显示端口,但在Linux下找不到
问题:
开发板在Windows下可以显示端口,但在Linux下找不到
这种情况一般是由于开发板的USB转串口芯片在Linux下没有驱动程序导致的,特别是USB转串口芯片为CH340的开发板,容易找不到驱动。(所以推荐使用USB转串口芯片型号为CP210x的开发板)。
解决方案:
安装对应型号的串口驱动程序,上网搜索安装教程一般都能找到。
3. Linux下烧录代码报错(没有串口权限)
问题:
Linux下烧录代码报错(没有串口权限)
在Linux下烧录代码,后可能会出现:
这是由于我们的linux用户没有读写串口的权限
解决方案:
可以使用下面的命令添加串口读写权限(也可直接切换root用户):
sudo chmod a+rw /dev/ttyUSB0
但是注意sudo chmod a+rw /dev/ttyUSB0
的权限更改是暂时的,只会在当前设备被使用的会话期间生效。一旦系统重启或者设备断开并重新连接,设备节点(例如 /dev/ttyUSB0)可能会重新被创建,且权限会被重置为默认状态。
可以使用下面的命令,永久为用户添加串口权限:sudo usermod -aG dialout username
,设置后重启方能生效。
4. 开发板烧录代码时出现MD5校验错误
解决办法如下:
需要在IDF环境下使用命令:]
esptool.py --port PORT write_flash_status --non-volatile 0
其中的PORT需要修改为实际连接的开发板端口。
5. 烧录报错:无法验证闪存芯片连接(未收到串行数据。)
报错信息如下:
Connecting....
Chip is ESP32-D0WD-V3 (revision v3.1)
Features: WiFi, BT, Dual Core, 240MHz, VRef calibration in efuse, Coding Scheme None
WARNING: Detected crystal freq 15.32MHz is quite different to normalized freq 26MHz. Unsupported crystal in use?
Crystal is 26MHz
MAC: fc:e8:c0:7c:b4:24
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
A fatal error occurred: Unable to verify flash chip connection (No serial data received.).
CMake Error at run_serial_tool.cmake:66 (message):
/home/duruofu/.espressif/python_env/idf5.3_py3.10_env/bin/python;;/home/duruofu/esp32/esp-idf-v5.3/components/esptool_py/esptool/esptool.py;--chip;esp32
failed.
FAILED: CMakeFiles/flash /home/duruofu/project/Mock-IoT-Device-ESP32/build/CMakeFiles/flash
解决办法:
重新烧录引导程序:长按BOOT键,然后按复位键,再次烧录代码,即可成功烧录。