【Linux之固定USB串口设备名称】

Linux之固定USB串口号

1.写在前面

我使用的系统版本Ubuntu 18.04
目的:使用RS232串口转USB接口, 固定USB串口设备名称
本文仅做记录留存使用.

在做串口通信方面的编程时,会遇到硬件设备无RS232串口,只能通过232转USB转接头连接主机, 但在设备断电重启或者重新插拔后, 对应的ttyUSB数值会改变, 那么我们在程序中写死的串口名(假如是"ttyUSB0")会因为设备的断电重启等因素而无法通信.

2.解决办法

固定USB串口设备名.

  1. 首先确认我们当前使用的是哪个串口, ttyUSB0还是ttyUSB4,或者其他的; 如果不能确定, 可使用串口工具看一下是哪个串口输出的
  2. 我的是ttyUSB4, 输入命令
ls sys/class/tty/ttyUSB* -l

可得到如下图:
图中红线标出的地方需要记住, 之后会有用
图中红线标出的地方需要记住, 之后会有用

  1. 进入/etc/udev/rules.d/目录下
cd /etc/udev/rules.d/

在该目录下新建.rules文件,并打开准备写入(注:文件名可自己定义, 我的是base.rules, 后缀一定是.rules)

sudo vim base.rules

在该文件下写入:
在这里插入图片描述
(KERNEL后面的就是我们查询到的,上张图片标红的

SYMLINK后面的是自己命名的, 用来替换USB串口名使用)

保存,退出;;;;

  1. 将我们的USB设备重新插拔后,会在/dev/下面生成SYMLINK后面自己定义的名称的文件

在这里插入图片描述
到这里就完成了…

  1. 最后在程序中, 我们调用的串口名要由之前的 “ttyUSB4” 改为 “myencoder” 即可…
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Linux中,USB串口设备文件通常命名为/dev/ttyUSBx,其中x为设备号。要调用一个USB串口设备文件,您需要先确定您的设备号,然后使用串口通信程序(如minicom、cu、picocom等)或编程语言(如C、Python等)打开该设备文件。以下是一个使用minicom打开USB串口设备的示例命令: ``` minicom -D /dev/ttyUSB0 ``` 其中,/dev/ttyUSB0是您的USB串口设备文件。您可以将其替换为您自己的设备文件路径。此命令将打开一个minicom终端,您可以在终端中发送和接收数据。 如果您想在编程中调用USB串口设备文件,可以使用POSIX标准的串口API(如open、read、write、close等)或相关的库(如libserial、pyserial等)来访问设备文件。例如,在C语言中,您可以使用以下代码打开一个USB串口设备文件: ```C #include <stdio.h> #include <fcntl.h> #include <termios.h> int main() { int fd = open("/dev/ttyUSB0", O_RDWR | O_NOCTTY); if (fd == -1) { perror("open"); return -1; } //设置串口属性 struct termios options; tcgetattr(fd, &options); cfsetispeed(&options, B9600); cfsetospeed(&options, B9600); options.c_cflag |= (CLOCAL | CREAD); options.c_cflag &= ~PARENB; options.c_cflag &= ~CSTOPB; options.c_cflag &= ~CSIZE; options.c_cflag |= CS8; tcsetattr(fd, TCSANOW, &options); //读写数据 char buf[100]; int n = read(fd, buf, sizeof(buf)); printf("read %d bytes: %s\n", n, buf); n = write(fd, "hello", 5); printf("write %d bytes\n", n); //关闭设备文件 close(fd); return 0; } ``` 该程序将打开一个名为/dev/ttyUSB0的USB串口设备文件,并设置串口属性为9600波特率、8数据位、无校验位、1停止位,然后读取设备文件中的数据并写入数据。您可以根据自己的需求修改代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值