CH340 是一个 USB 总线的转接芯片,实现 USB 转串口或者 USB 转打印口。 在串口方式下,CH340 提供常用的 MODEM 联络信号,用于为计算机扩展异步串口,或者将普通的 串口设备直接升级到 USB 总线。在驱动包内包含一个CH341PT.DLL库,内置CH34X串口号的识别和接口发生USB插拔动作后的通知。示例程序在 CH341EVT.ZIPIDEN_SER内,提供VB和VC的功能。下载链接为:示例程序在CH http://www.wch.cn/downloads/CH341EVT_ZIP.html
函数说明:BOOL WINAPI CH341PtHandleIsCH341( // 检查已经打开的端口是否为CH341端口 HANDLE iPortHandle ); // 指定已经打开的端口句柄BOOL WINAPI CH341PtNameIsCH341( // 检查指定名称的端口是否为CH341端口 PUCHAR iPortName ); // 指定端口名称,例如"COM3","COM15"等,该端口必须未被占用(指未被其它程序打开)typedef VOID ( CALLBACK * mPCH341PT_NOtiFY_ROUTINE ) ( // 端口设备事件通知回调程序 LONG iDevIndexAndEvent ); // 端口设备序号和事件及当前状态(参考下行说明)// iDevIndexAndEvent: 正数说明是设备插入事件/已经插入, 负数说明是设备拔出事件/已经拔出, 其绝对值是设备序号(1到255)BOOL WINAPI CH341PtSetDevNotify( // 设定端口设备事件通知程序 PCHAR iDeviceID, // 可选参数,指向以 终止的字符串,指定被监控的设备的ID或者不含序号的主名称,对于串口该参数必须为NULL或者"COM" mPCH341PT_NOTIFY_ROUTINE iNotifyRoutine ); // 指定端口设备事件回调程序,为NULL则取消事件通知,否则在检测到事件时调用该程序
应用程序编程参考1. 主程序启动,默认是禁止数据传输的,只有在确定有CH341端口可用并且打开端口后才进行数据传输2. 调用CH341PtSetDevNotify设置插拔监视,如果将来发生CH341端口的插拔事件DLL将会自动调用iNotifyRoutine所指定的子程序或者函数3. 从端口1到端口255(正常到20即可)逐个调用CH341PtNameIsCH341确定是否为CH341端口,如果返回是则记忆其端口号并打开后开始传输,如果返回否则休息4. 如果iNotifyRoutine收到事件通知,那么可以在保存事件参数后通知主程序处理,也可以在该子程序中处理, 分析事件参数,如果是正数则说明有一个端口插入,需要打开时应该首先用CH341PtNameIsCH341判断是否为CH341端口,是则记忆其端口号并打开后开始传输, 如果是负数则说明有一个端口拔出,判断其端口号(用0减去该负数得端口号)是否与记忆的已打开的端口号相同,是则应该及时关闭5. 当前已经打开的端口号应该保存为全局变量, 如果端口未打开或者被关闭,那么应用程序应该停止数据传输6. 如果事先未用CH341PtNameIsCH341确定是否为CH341端口,那么在端口已经打开后,也可以调用CH341PtHandleIsCH341判断是否为CH341端口
附芯片说明 CH340 是一个 USB 总线的转接芯片,实现 USB 转串口或者 USB 转打印口。在串口方式下,CH340 提供常用的 MODEM 联络信号,用于为计算机扩展异步串口,或者将普通的串口设备直接升级到 USB 总线。 特点 ● 全速USB 设备接口,兼容USBV2.0。 ● 仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口。 ● 计算机端Windows 操作系统下的串口应用程序完全兼容,无需修改。 ● 硬件全双工串口,内置收发缓冲区,支持通讯波特率50bps~2Mbps。 ● 支持常用的MODEM 联络信号RTS、DTR、DCD、RI、DSR、CTS。 ● 通过外加电平转换器件,提供RS232、RS485、RS422 等接口。 ● CH340R 芯片支持IrDA规范SIR红外线通讯,支持波特率2400bps到115200bps。 ● 内置固件,软件兼容CH341,可以直接使用CH341的VCP驱动程序。 ● 支持5V 电源电压和3.3V电源电压甚至3V 电源电压。 ● 提供SOP-16、SOP-8和SSOP-20以及ESSOP-10、MSOP-10无铅封装,兼容RoHS。
|