在Linux下面装了Atom+PlatformIO,然后编译程序是可以的,但是下载是不行的,有一大堆提示,我从上到下看了一边,发现是打不开串口,最下面有一行提示
serial.serialutil.SerialException: [Errno 13] could not open port /dev/ttyUSB0: [Errno 13] Permission denied: '/dev/ttyUSB0'
就是说打不开串口,我把could not open port /dev/ttyUSB0
复制到网上准备查一下什么情况,然后很容易就发现了问题所在,简直不要太简单。就是权限不够而已,那么要怎么给呢。
解决办法:
一、给所有的USB to TTL设备权限:
这种方法是给一个ttyUSB*
一个范围来解决的,通过增加udev规则来实现,步骤如下:
创建文件/etc/udev/rules.d/70-ttyusb.rules
在文件内增加一行KERNEL=="ttyUSB[0-9]*", MODE="0666"
,重新插入USB转串口设备,普通用户就有权限访问了。
二、给指定的芯片或者板子权限:
首先,lsusb
看一下USB转串口芯片的idVendor
和idProduct
,显示结果中,会有下面样子的一条结果:
Bus 003 Device 006: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter
ID 1a86:7523表示idVendor=1a86,idProduct=7523,然后我们就去rule文件里面添加规则了。
70-ttyusb.rules的内容如下:
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523",MODE="0666"
重新插入USB转串口设备,普通用户同样可以访问了。