Linux/Mac查找串口设备名称

描述

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
打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分