树莓派固定USB端口号的方法
树莓派的USB端口接通时被映射为一个文件存在/dev/目录下,通常是ttyUSB0, ttyUSB1等等。实际应用它存在这样一个问题,树莓派并不是指定哪一个端口就是ttyUSB0,或哪一个就是ttyUSB1,而是把第一个接入设备的USB口定为ttyUSB0, 第二个是ttyUSB1,这在接一个设备时是优点,可是接多个设备,在程序里就分不清ttyUSB0,ttyUSB1到底指的哪一个设备了。 所以应给各个USB口定一个固定的名字,在程序中好让我们准确地找到它。方法如下:
1.查看USB号
执行命令:ls -l /sys/class/tty
在树莓派系统里,其实对USB口是有区分的,反复插拔USB,并执行上面的命令,可以找出系统对USB口的命名规律。
不论怎样插拔USB,端口自身都是上面的编号,因此,只要给这几个编号指定别名就可以了
2.编辑配置文件
执行命令:sudo vi /etc/udev/rules.d/99-com.rules
在文件末尾加入下面内容
KERNEL=="ttyUSB*",KERNELS=="1-1.2",MODE:="0777",SYMLINK+="device2"
KERNEL=="ttyUSB*",KERNELS=="1-1.3",MODE:="0777",SYMLINK+="device3"
KERNEL=="ttyUSB*",KERNELS=="1-1.4",MODE:="0777",SYMLINK+="device4"
KERNEL=="ttyUSB*",KERNELS=="1-1.5",MODE:="0777",SYMLINK+="device5"
以上几句话的意思就是为USB编号指定别名。
3.重启服务
执行命令:sudo /etc/init.d/udev restart
4.查看结果
执行命令:ls -l/dev | grep ttyUSB
可见,不论ttyUSB*怎样变,端口都有一个自己的名字
5. 程序中访问
import serial ser2 = serial.Serial('/dev/device2',9600) ser3 = serial.Serial('/dev/device3',9600)