Linux 固定串口号 绑定设备

1.执行命令(position命名可以自己修改)

vim /etc/udev/rules/position.rules

2.将 电脑上的设备依次插上保持不动,每插一个执行一次命令

dmesg

3.获取对应设备的idVendor和idProduct号,以及KERNELS.

4.在position文档中按照如下图片填写对应设备的idVendor和idProduct号,将KERNELS修改为dmesg查看到的usb号(例如上面为1-4.2,ttycar为自己设定的设备号。

 ​​​​​​​​​​​​​​ 

 

 

 

### Windows 固定设备 COM 口号设置方法 在 Windows 系统中,可以通过修改 USB 设备的供应商 ID (VID) 和产品 ID (PID),以及序列号 (Serial Number),使系统识别该设备为同一硬件并分配固定的 COM 号。以下是具体实现方式: #### 修改 USB CDC 类描述符 USB CDC 类描述符定义了设备的基本属性,包括 VID、PID 和序列号。这些字段决定了 Windows 是否将新接入的设备视为已知设备。为了确保每次接入时使用相同的 COM 口,需统一所有设备的以下参数: - **VID**: 厂商唯一标识。 - **PID**: 产品唯一标识。 - **序列号**: 区分同类型设备的唯一标志。 通过调整固件中的 USB 描述符部分,可以强制所有设备报告完全一致的信息。例如,在 MH2103 的 USB CDC 实现中,可编辑其源码以硬编码固定的序列号[^1]。 #### 更新注册表项 当 USB 设备首次插入计算机时,Windows 将基于其硬件 ID 创建一条记录于系统设备管理器数据库之中。此过程涉及存储特定实例路径下的配置详情至 `HKEY_LOCAL_MACHINE` 下的相关键值位置。如果希望更改现有装置所关联之端口号码,则可通过手动干预达成目标。 假设当前动态分配给某款 USB 转 RS232 模块的是 COM3,并期望将其锁定为此数值而不随日后重新插拔而变动的话,请按照下面指示操作: 1. 打开运行对话框(`Win + R`),输入`regedit`启动注册表编辑程序; 2. 定位到节点:`Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\<YourDeviceIdentifier>\Device Parameters`; 3. 寻找名为"PortName"字符型态条目,双击后设定成想要保留下来的通讯埠名称形式如:"COM3"[^2]. 值得注意的是,上述步骤里的 `<YourDeviceIdentifier>` 应替换为你实际使用的外设对应的完整标识符字符,通常类似于 `USB\VID_XXXX&PID_YYYY` 结构。 对于 Linux 平台而言,虽然提供了 udev 规则机制允许管理员自定义逻辑链接指向真实的 TTY 文件从而间接达到类似效果[^3] ,但在微软操作系统环境下并无直接等价功能可用;因此主要依赖前期设计阶段即妥善规划好各项必要参数来规避后续频繁变更带来的困扰。 ```python import winreg as reg def set_fixed_com_port(device_identifier, desired_com_port): key_path = r'SYSTEM\CurrentControlSet\Enum\USB\\' + device_identifier + '\\Device Parameters' try: # Open the registry key for writing. key = reg.OpenKey(reg.HKEY_LOCAL_MACHINE, key_path , 0, reg.KEY_SET_VALUE) # Set the PortName value to our desired COM port number. reg.SetValueEx(key,"PortName", None, reg.REG_SZ,str(desired_com_port)) # Close the opened key after modification is done. reg.CloseKey(key) return True except Exception as e: print(f"Error setting fixed COM port: {e}") return False ``` 以上 Python 函数示范了如何利用标准库访问 Windows 注册表 API 来自动化完成指定 USB 外设绑定恒定虚拟行接口的任务流程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值