关于CH341直接作IO接口问题[原创]

CH341DLL.DLL中没有API能在CH341数据端输出高电平或低电平并保持状态到需要取消的时候吧?

API CH341Set_D5_D0和CH341SetOutput都可以实现你的要求,API如下:

BOOL WINAPI CH341Set_D5_D0( // 设置CH341的D5-D0引脚的I/O方向,并通过CH341的D5-D0引脚直接输出数据,效率比CH341SetOutput更高 /* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ ULONG iIndex, // 指定CH341设备序号 ULONG iSetDirOut, // 设置D5-D0各引脚的I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x00全部输入 ULONG iSetDataOut ); // 设置D5-D0各引脚的输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平 // 以上数据的位5-位0分别对应CH341的D5-D0引脚

BOOL WINAPI CH341SetOutput( // 设置CH341的I/O方向,并通过CH341直接输出数据 /* ***** 谨慎使用该API, 防止修改I/O方向使输入引脚变为输出引脚导致与其它输出引脚之间短路而损坏芯片 ***** */ ULONG iIndex, // 指定CH341设备序号 ULONG iEnable, // 数据有效标志,参考下面的位说明 // 位0为1说明iSetDataOut的位15-位8有效,否则忽略 // 位1为1说明iSetDirOut的位15-位8有效,否则忽略 // 位2为1说明iSetDataOut的7-位0有效,否则忽略 // 位3为1说明iSetDirOut的位7-位0有效,否则忽略 // 位4为1说明iSetDataOut的位23-位16有效,否则忽略 ULONG iSetDirOut, // 设置I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x000FC000,参考下面的位说明 ULONG iSetDataOut ); // 输出数据,如果I/O方向为输出,那么某位清0时对应引脚输出低电平,某位置1时对应引脚输出高电平,参考下面的位说明 // 位7-位0对应CH341的D7-D0引脚 // 位8对应CH341的ERR#引脚, 位9对应CH341的PEMP引脚, 位10对应CH341的INT#引脚, 位11对应CH341的SLCT引脚 // 位13对应CH341的WAIT#引脚, 位14对应CH341的DATAS#/READ#引脚,位15对应CH341的ADDRS#/ADDR/ALE引脚 // 以下引脚只能输出,不考虑I/O方向: 位16对应CH341的RESET#引脚, 位17对应CH341的WRITE#引脚, 位18对应CH341的SCL引脚, 位29对应CH341的SDA引脚


能说一下在VB中怎么声明这些函数吗?


我们提供了CH341DLL.PAS文件,你可以到我们网上下载CH341EVT.ZIP,里面有VB工程的代码


应该安装哪一个驱动程序?


你只需安装网上的驱动即可:CH341PAR.ZIP/CH341PAR.EXE


设备号是怎么确定的?


如果想操作多个设备可以用设备序号来区分,0对应着第一个插入的设备


讲等于没讲吧.....研究DLL的说明很久了....如何明的不用问了....给一行VB代码行吧....CH341Set_D5_D0

CH341SetOutput 不会用啊?很多人问啊.....


只有登录才能回复,可以选择微信账号登录