三、串口权限问题
Linux串口是默认普通用户没有读写权限的,每次开机后对串口读写都要附加权限
sudo chmod 666 /dev/ttyUSB0
但对于需要开机自动运行的程序就很麻烦了,所以可以设置永久加权
打开下面的文件
远程的话要把gedit换成vi或nano等。
这个文件本来是不存在的,只不过编辑器打开不存在的文件会自动创建。
70-usb-serial.rules文件名可以自定义,但必须以.rules结尾。
sudo gedit /etc/udev/rules.d/70-usb-serial.rules
在文件中添加如下内容
ttyUSB表示所有这一格式的串口名,如果你的是ttyS或其它,按需改。
0666表示加权模式,和chmod后面的参数一致,写成666也可以。
vibot_base是我自定义的串口名,就是为ttyUSB创建一个超链接 ,如下图。如果你不需要,可以去掉最后一项。
KERNEL==”ttyUSB”, MODE=”0666″, SYMLINK+=”vibot_base”
在这里插入图片描述
重启电脑
重启电脑使修改生效。
ubuntu 中查看串口信息
阅读 Linux压缩与解压zip,tar,tar.gz,tar.bz2类型文件
提示Permission denied,就是需要转换为超级用户打开
sudo su
或者 采用sudo前缀
1.使用ls -l ttyS命令显示如下
crw-rw—-. 1 root dialout 4, 64 5月 17 02:24 /dev/ttyS0
crw-rw—-. 1 root dialout 4, 65 5月 17 02:24 /dev/ttyS1
crw-rw—-. 1 root dialout 4, 66 5月 17 02:24 /dev/ttyS2
crw-rw—-. 1 root dialout 4, 67 5月 17 02:24 /dev/ttyS3
但你不知到哪个是真实的串口,虽然一般都是ttyS0,但也不敢妄然确定。
2.使用cat /proc/tty/driver/serial
serinfo:1.0 driver revision:
0: uart:16550A port:000003F8 irq:4 tx:0 rx:0
1: uart:unknown port:000002F8 irq:3
2: uart:unknown port:000003E8 irq:4
3: uart:unknown port:000002E8 irq:3
我们发现串口0的uart值时16550A,tx值为0,rx值也为0,因此我们断定本机只有一个串口,是串口0,即ttyS0
3.也可以用dmesg | grep tty0,查看是否使能等信息。但这个不是很好用,当然你可以自己使用正则法则取找到。
注意:还应查看是否有USB转串口,这个就很简单了:ls ttyUSB*,全部搞定。
另外 Ubuntu下串口调试工具 可以安装 cutecom。