ESP32是低成本,低功耗的单片机微控制器,集成Wi-Fi和双模蓝牙。
ESP32系列采用Tensilica Xtensa LX6微处理器,包括双核心和单核变体,内置天线开关,RF变换器,功率放大器,低噪声接收放大器,滤波器和电源管理模块。
刚入手一个块ESP32-WROVER-E想学习一下C语言,没有想到第一步上来就给一个莫名奇妙的问题。
当我使用esptool.py工具清除ESP32固件时,终端给了一个错误提示A fatal error occurred: Could not open /dev/ttyUSB0, the port doesn't exist。
翻译过来就是一个致命的错误,不能打开/dev/ttyUSB0,该端口不存在。我查找端口的方式都是按照官方查找端口的方式进行的。下面我们说一下怎么解决这个问题。
esptool.py --chip esp32 -b 115200 --port /dev/ttyUSB0 erase_flash
Linux/Mac 查找串口设备名称
要解决端口不存在的问题,你必须先保证能找到正确的串口设备名称。在Linux,USB串口的设备名称通常都以ttyUSB作为前缀,然后USB串口的数字。
在官方文档给出一个简单解决方式就是,首先运行一次ls命令ls /dev/tty*
列出所有TTY设备。
然后使用USB线连接你的ESP32设备,再次运行命令ls /dev/tty*
列出所有TTY设备。增加的TTY设备就是ESP32开发板串口的设备名称。
这是可以在不安装任何软件找到ESP32开发板串口的设备名称方式,当然你可以使用Arduino IDE的工具找到ESP32开发板串口的设备名称。
通常我们比较建议使用官方文档找到ESP32开发板串口的设备名称,但需要改进一点就是列出TTY设备文件时,直接指定USB的TTY设备。
命令ls /dev/tty*
包含太多的文件,很难找到。而命令ls /dev/ttyUSB?
则会很容易就能发现。
ls /dev/ttyUSB?
解决端口不存在
找到ESP32正确的串口设备名称非常重要,如果你没有找到正确串口设备名称,你将永远得到是 Could not open /dev/ttyUSB0, the port doesn't exist。
如果你确定找到的是正确的串口设备名称,还是遇到错误消息A fatal error occurred: Could not open /dev/ttyUSB0, the port doesn't exist。
这是因为当前登录的用户对串口设备文件不可读写,也就权限不足,就会出现同样的错误。其实,这里的错误应该说权限拒绝才对。
要解决次问题有两种方式。第一种直接使用chmod命令修改串口设备文件的权限,让所有用户都可以读写串口设备文件。
第二种是使用usermod命令将当前用户加入dialout组,dialout组对串口设备文件具有读写权限。
这里之所以建议使用第二种方案是因为chmod命令修改权限只是一次性的,当你将ESP32断开连接,串口设备文件就会恢复原来的权限。
命令sudo usermod -aG dialout $USER
将当前登录的用户加入dialout组。newgrp dialout
命令使用户组的修改在当前shell会话生效。
sudo usermod -aG dialout $USER
newgrp dialout
-
Linux
+关注
关注
87文章
11216浏览量
208767 -
Mac
+关注
关注
0文章
1099浏览量
51344 -
串口
+关注
关注
14文章
1541浏览量
76101 -
ESP32
+关注
关注
17文章
953浏览量
17018
发布评论请先 登录
相关推荐
评论