ch341芯片CH341SetOutput函数如何用

CH341SetOutput 这个函数,我看了说明没看明白,

我在vb 里这么调用的,

'll = CH341SetOutput(0,0x06,0x000FC0ff,0x55)

temp1 = HexToBcd("1f") temp2 = HexToBcd("ffffffff") temp3 = HexToBcd("55")

ll = CH341SetOutput(0, temp1, temp2, temp3)

能否说明一下 参数是如何设置和计算io的,我没看明白你们的说明,

举一个实例详细说明一下用法,可以么?

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引脚

我们提供的说明已经非常详细,如果说您还是看不明白的,您可以告诉我们您的需求,我们可以帮助您写相关代码实现


Private Sub Command1_Click() CH341OpenDevice (0) b = CH341SetOutput(0, 12, 15, 12) End Sub

Private Sub Command2_Click() CH341OpenDevice (0) b = CH341SetOutput(0, 12, 15, 11) End Sub


搞了半天。。。D3可关可开。。。但不明如何计哪只D。。。。。。

Private Sub Command1_Click() CH341OpenDevice (0) b = CH341SetOutput(0, 12, 15, 12) End Sub

Private Sub Command2_Click() CH341OpenDevice (0) b = CH341SetOutput(0, 12, 15, 11) End Sub


Private Sub Timer1_Timer() If (CH341OpenDevice(0) = INVALID_HANDLE_VALUE) Then Label1.Caption = "读取CH341A失败!" Else Label1.Caption = "读取CH341A成功!" End If End Sub


请问你要实现什么样的功能,请表达清楚


vb控制LED灯。。。


我也有这个问题,我希望SCL和SDA这两个引脚在某个时间段作为普通的输出口,即SCL和SDA可以输出任意的高电平或低电平,但是CH341SetOutput这个函数不知道咋用,或者说用了没反应,不知怎么搞,


您好,我们封装了一个单独的针对CH341的GPIO使用头文件,可发邮件到我司技术邮箱获取,tech@wch.cn。


邮件已发,谢谢


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