Silicon Labs CP210x USB to UART Bridge,COM口无法识别

在使用Silicon Labs CP210x USB to UART Bridge时遇到识别问题,尽管其GUID与Prolific USB-to-Serial Comm Port相同,但无法通过原有函数接口识别。尝试通过SetupDiEnumDeviceInterfaces函数失败后,选择更换接口策略。新方法包括:1) 不指定GUID遍历硬件设备;2) 使用SetupDiEnumDeviceInfo获取设备信息;3) 通过设备名称中是否包含'COM'来判断是否为串口。
摘要由CSDN通过智能技术生成

一直用一个电脑端,识别USB转串口的函数接口,但在Silicon Labs CP210x USB to UART Bridge上,却无法成功识别。确认过Silicon Labs CP210x USB to UART Bridge和Prolific USB-to-Serial Comm Port的GUID是一样的,没有办法解决,最后只能曲线救国,更换新的接口来操作。

先贴出,不能生效的函数接口:

1. GUID和设备管理器中,驱动的GUID是一样的。

DEFINE_GUID(GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR, 0x4d36e978L, 0xe325, 0x11ce, 0xbf, 0xc1, 0x08, 0x00, 0x2b, 0xe1, 0x03, 0x18); 

2. bOk = SetupDiEnumDeviceInterfaces(hDevInfo, NULL, guidDev, ii, &ifcData); 该函数一直返回false,而Prolific USB-to-Serial Comm Port的串口返回true。

// Helpers for EnumSerialPorts 
void EnumPortsWdm(CArray<SSerInfo,SSerInfo&> &asi) 
{ 
	CString strErr; 

	// Create a device information set that will be the container for  
	// the device interfaces. 
	//GUID *guidDev = (GUID*) &GUID_CLASS_COMPORT; 
	GUID *guidDev = (GUID *) &GUID_DEVINTERFACE_SERENUM_BUS_ENUMERATOR;
	HDEVINFO hDevInfo = INVALID_HANDLE_VALUE; 
	SP_DEVICE_INTERFACE_DETAIL_DATA *pDetData = NULL; 

	try { 
		hDevInfo = SetupDiGetClassDevs( guidDev, 
										NULL, 
										NULL, 
										DIGCF_PRESENT | DIGCF_DEVICEINTERFACE 
										); 

		if(hDevInfo == INVALID_HANDLE_VALUE)  
		{ 
			strErr.Format("SetupDiGetClassDevs failed. (err=%lx)", 
			GetLastError()); 
			throw strErr; 
		} 

		// Enumerate the serial ports 
		BOOL bOk = TRUE; 
		SP_DEVICE_INTERFACE_DATA ifcData; 
		DWORD dwDetDataSize = siz
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Silicon Labs CP210x USBUART桥接器是一种通过USB连接计算机和UART设备的芯片。它可以将USB转换为串行通信接,使计算机能够直接与UART设备进行通信。 CP210x系列芯片采用了Silicon Labs独有的单芯片USB桥接器解决方案,具有高度集成的优势。它内部集成了USB控制器、UART控制器和相关接电路,只需少量外部元件即可实现电路设计。同时,CP210x还支持广泛的操作系统和开发环境,如Windows、Linux、Mac OS等,方便开发者使用。 CP210x具有丰富的功能和性能。它具备高速传输能力,支持数据传输速率高达3Mbps,可以满足大部分应用的需求。此外,它还支持多种常见的UART通信协议,如RS-232、RS-422和RS-485等。通过使用CP210x,开发者可以简化串行通信设计,提高产品开发效率。 CP210x的工作原理是通过USB与计算机进行连接,并利用USB协议进行数据传输。它将USB接收到的数据进行解析,并通过UART将数据发送到目标设备。同样,它也可以接收UART设备发送的数据,并通过USB传输给计算机进行处理。这种转换过程是透明的,无需开发者关心具体的实现细节。 总的来说,Silicon Labs CP210x USBUART桥接器是一种功能强大、易于使用的芯片,可实现USBUART之间的数据传输连接。它广泛应用于各种领域,如工业控制、嵌入式系统、通信设备等,为设备的连接和通信提供了便利。 ### 回答2: Silicon Labs CP210x USBUART桥接器是一种用于将USB转换为UART(通用异步收发器)接的芯片。它允许计算机通过USB与串行设备进行通信,如微控制器、传感器、模块等。 CP210x系列芯片具有许多优点。首先,它们支持多种数据传输速率,从300 bps到3 Mbps不等,因此非常适用于不同的应用需求。其次,它们具有广泛的操作系统兼容性,包括Windows、Mac和Linux等主流系统。 另外,CP210x芯片也提供多种GPIO引脚,用于连接外部设备,如LED灯、按钮等。这些引脚可以方便地用于与外部设备的交互。此外,该芯片还具有内置的电源管理功能,能够自动控制供电和休眠模式,降低功耗。 对于开发者来说,CP210x芯片具有友好的集成开发环境(IDE)支持。Silicon Labs提供了官方的开发工具和文档,包括驱动程序、示例代码和用户手册等,使开发过程更加便捷和高效。 总之,CP210x USBUART桥接器是一种功能强大的芯片,可以轻松实现USBUART之间的数据传输。它适用于各种应用场景,包括嵌入式系统、物联网设备和消费电子产品等。 ### 回答3: Silicon Labs CP210x USB to UART Bridge是一款由硅实验室(Silicon Labs)开发的USBUART(通用异步收发传输器)桥接芯片。它的主要功能是将USB转换为UART,从而实现电脑或其他USB主机设备与UART设备之间的通信。 由于CP210x桥接芯片支持USB 1.1和USB 2.0标准,因此它可以与广泛的设备兼容。它提供了高达920Kbps的高速UART传输速率,使得数据传输更加高效和稳定。 CP210x桥接芯片还具备丰富的功能和通用性。它支持多种UART模式(如7位/8位数据位、奇偶校验、停止位等)和流控制(如硬件流控制和软件流控制),以满足不同设备的需求。此外,它还支持自动流控制和自动线速率检测功能,大大简化了设计和配置过程。 CP210x桥接芯片还具备良好的电源管理功能。它的低功耗设计有助于延长电池寿命,并提供了多种低功耗模式选择,以适应电源管理需求。 硅实验室为CP210x桥接芯片提供了完整的软件支持。他们提供了Windows、Mac和Linux等操作系统的驱动程序和配置工具,以及USBXpress软件库和示例代码,以便用户可以快速集成和开发。 总之,Silicon Labs CP210x USB to UART Bridge是一款功能丰富、通用性强、性能稳定的USBUART桥接芯片,为设备之间的通信提供了高效、可靠的解决方案。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值