当多个CH348芯片同时接入电脑时,每块芯片虚拟出的8个串口都相同,这会导致难以区分和管理这些串口。为了解决这个问题,我们可以通过修改每个CH348芯片的Serial String字段,并在Qt上读取这个字段来唯一标识每个串口。
一
背景知识
CH348是一款常用的USB转串口芯片,它可以将USB信号转换为串行通信信号,使得计算机能够与各种串口设备进行通信。在某些应用场景中,我们需要在一台电脑上同时连接多个串口设备,这时就需要使用到CH348芯片的多串口功能。然而,当多个CH348芯片同时工作时,如何区分它们就成了一个问题。
二
问题描述
1、假设我们在一台电脑上连接了多个CH348芯片,每个芯片都虚拟出了8个串口。但是每8个串口描述字符串是相同的,这就导致了一个问题:当需要与特定的串口设备进行通信时,很难确定应该选择哪个串口。如果通过系统枚举出来的串口号来区分哪个串口是不可靠的,因为系统枚举是随机的,在同一台电脑上换一个USB口后枚举的串口号也会改变。
2、在QT环境中,读取串口的Vendor ID与Product ID是失败的,也无法通过读取其他信息来获得唯一标识。
三
解决方案
为了解决这个问题,我们可以利用CH348芯片自带的上位机工具来修改其Serial String字段。这个字段是一个字符串,可以用来描述芯片的一些信息。我们可以在这个字段中写入一些唯一的标识符,比如设备的型号、序列号等。这样,当我们在Qt上位机程序中读取这个字段时,就可以根据这个标识符来确定是哪一块CH348芯片以及它所对应的虚拟串口。
四
实现方法
1.安装CH348的驱动
首先,我们需要找到并打开CH348芯片的上位机工具与驱动等。这些资料可以通过官方网站或者相关资源下载(CH348资料下载)。打开资料下的USBMSER.exe软件,选择卡类型:USB转多串口(USB1.1/2.0),点击安装驱动,等待安装完成。
2.使用修改字段的上位机
找到并打开CH348芯片的上位机工具。选择资料链接下的CH34xSerCfg.ZIP。
打开上位机工具后,我们会看到一个界面,其中列出了所有连接的CH348芯片及其对应的虚拟串口。
3.修改Serial String字段
在上位机工具中,选择需要修改的CH348芯片,然后找到Serial String字段。我们将想要写入的信息(如设备的型号、序列号等)输入到这个字段中,勾选Serial String,并写入配置。
4.在Qt中读取Serial String字段
在Qt程序中,我们可以遍历所有的串口信息,调用QSerialPortInfo类下的serialNumber()方法,并检查返回的结果是否是我们之前设置的Serial String字段内容。如果找到了匹配的内容,我们就可以确定这个串口是由哪一块CH348芯片虚拟出来的。
五
总结
通过利用CH348芯片自带的上位机工具来修改Serial String字段,并在Qt程序中读取这个字段,我们可以方便地确定某一块CH348芯片及其对应的虚拟串口。这种方法不仅可以解决多芯片环境下的设备识别问题,还可以提高系统的可维护性和可扩展性。当然,这种方法也有一定的局限性,比如可能会增加一些额外的工作量和风险。因此,在实际应用中需要根据具体情况权衡利弊。
-
芯片
+关注
关注
455文章
50721浏览量
423167 -
串口
+关注
关注
14文章
1551浏览量
76431 -
上位机
+关注
关注
27文章
941浏览量
54791
发布评论请先 登录
相关推荐
评论