前言
接下来介绍一种方法去检测USB转串口的插拔事件,使用CH343PT库中接口CH343PT_SetDevNotify去实现该功能。接口介绍如下图所示,具体参数解释请查看CH343PT.H库,下载链接:http://www.wch.cn/downloads/CH343SER_ZIP.html。
一、使用CH343PT库去检测USB转串口设备的热插拔
首先建一个VC6工程Win32 应用,创建一个对话框,在显示区域输出设备插拔信息。插拔USB转单串口设备,如CH340、CH341、CH343,CH9101、CH9102等设备以及CH342、CH344、CH347、CH348、CH9103、CH9104等USB转多串口设备,如下图所示可以看到CH343设备插拔信息。
二、监测USB串口设备插拔事件
1.引入库
引入CH343PT库:
#include "External\\CH343PT.H"
#pragma comment(lib,"External\\CH343PT")
2.端口设备插拔事件通知回调程序:
代码如下(示例 Win32应用程序):
VOID CALLBACK CH343PT_NOTIFY_ROUTINE(LONG iDevIndexAndEvent)
{
if(iDevIndexAndEvent > 0)
{//设备已插入
SetDlgItemText(AfxMainHwnd, IDC_ShowSerialString, "设备已插入");
}
else if(iDevIndexAndEvent < 0)
{//设备已移除
SetDlgItemText(AfxMainHwnd, IDC_ShowSerialString, "设备已移除");
}
}
设定端口设备插拔事件通知程序(放在主窗体中WndProc):
case WM_INITDIALOG:
{
AfxMainHwnd = hWnd;
HWND hWndFindCom = GetDlgItem(hWnd, IDC_Com);
//寻找可用串口
FindCom(hWndFindCom);
//设定端口设备事件通知程序
CH343PT_SetDevNotify("COM",CH343PT_NOTIFY_ROUTINE);
}
break;
总结
CH343PT库,不仅可以检测CH34x系列,CH910X系列等USB转串口设备,而且也可以检测到其他厂商USB转串口设备,如FT232,CP2102等USB转串口设备。CH343PT库,不仅仅能使用检测到设备插拔功能,还可以配置芯片GPIO功能,配置芯片EEPROM参数等功能。