树莓派绑定串口

举报
Hermit_Rabbit 发表于 2022/07/26 15:10:57 2022/07/26
【摘要】 如果树莓派绑定多个串口,就有可能出现问题:Linux是按照插入顺序对设备进行编号的,例如ttyUSB0,ttyUSB1或者ttyACM0,ttyACM1等等,那么每次重新开机的时候容易出现设备不对应编号的情况,这就无法在代码中固定设备的端囗号,因此我们必须想办法将设备的端口号固定。、 将单台设备端口号固定【适用情况】:适用于某个设备插上之后,它的ID是唯一的,与其他设备不同。1、查询ID:...

如果树莓派绑定多个串口,就有可能出现问题:Linux是按照插入顺序对设备进行编号的,例如ttyUSB0,ttyUSB1或者ttyACM0,ttyACM1等等,那么每次重新开机的时候容易出现设备不对应编号的情况,这就无法在代码中固定设备的端囗号,因此我们必须想办法将设备的端口号固定。、

将单台设备端口号固定

【适用情况】:
适用于某个设备插上之后,它的ID是唯一的,与其他设备不同。
1、查询ID:

Isusb

得到:
Bus 001 Device 010:ID 10c4:ea60 Cygnal Integrated Products,Inc.CP210x UART Bridge/
myAVR mySmartUSB light
Bus 001 Device 005:IDObda:5411 Realtek Semiconductor Corp.
Bus 001 Device 008:ID 24ae:1100
Bus 001 Device 001:ID 1d6b:0002 Linux Foundation 2.0 root hub
以Device010为例:其ID是:10c4:ea60
2、修改文件:
sudo vim/etc/udev/rules.d/99-com.rules
在文件最后面添加:
KERNEL==“ttyUSB*”,ATTRS{idVendor}==“10c4”,ATTRS{idProduct}==“ea60”,
MODE:=“0777”,SYMLINK+="whbot"
其中whbot是我们将其重命名的设备,之后我们直接访问whbot即可。换句话说,之后开机无论ID为
10c4:ea60的设备被分配为ttyUSB0或者ttyUSB1,始终都可以通过whbot来访问它。
3、重新配置:
sudo /etc/init.d/udev restart
并且重新拔插USB设备。建议:重新启动系统。
4、启动后,查看是否存在:
Is-I/dev lgrep ttyUSB
就能看到重定向的信息啦,我们之后在代码里直接访问/dev/whbot即可访问该设备。

多台相同ID的设备端口号固定

【适用情况】:
多合相同设备,例如多台arduino,它们被分配为ttyACM0和ttyACM1,通过第一个方法我们发现它们
的ID都一样。
1、查询:
udevadm info /dev/ttyUSB0 或者dmesg或者ls -l /sys/class/tty
应该可以得到x-x.x形式的设备:

2:修改文件:

cd …/…/etc/udev/rules.d/

然后输入:

sudo vim 98-com-udev.rules

在udev文件中加入:

KERNEL=="ttyACM",KERNELS==“2-7.3”, MODE:=“0666”, GROUP:=“dialout”, SYMLINK+=“ttyUSB001”*

绑定设备号用:wq来实现

3、重新配置:
sudo /etc/init.d/udev restart
并且重新拔插USB设备。建议:重新启动系统。
4、启动后,查看是否存在:
Is-I/dev lgrep ttyACM
就能看到重定向的信息啦,我们之后在代码里直接访问/dev/whbot即可访问该设备。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。