CH341A输入点状态怎么读都是1是怎么回事?跪求答案了!

CH341A的直接IO输出基本上玩转了,IO输入为什么玩不动呢? 有工程师能解答一下吗?是电压问题吗?

resu = CH341SetOutput(0, &HC, &HFE, &H11) 设置D0位为输入,其他都是输出, 但是我用

resu = CH341GetInput(0, resudata)只能读到输出点的状态改变, EF01 变为 EF11 ,第D4位我控制输出信号了。 输入点状态怎么读都是1是怎么回事啊?

拜求各位老大帮忙看一下,解答一下啊!!! 对你们来说很简单,对我来说很重要的。 Email : 个人信息保护,已隐藏

你可以电话联系02552638363.这样解决问题更快


多谢您的帮忙! :)


//enable // 位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有效,否则忽略

//set_dir_out // 设置I/O方向,某位清0则对应引脚为输入,某位置1则对应引脚为输出,并口方式下默认值为0x000FC000,参考下面的位说明

//set_data_out // 输出数据,如果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引脚

unsigned long enable,set_dir_out,set_data_out; enable = 0x0000000C; //数据/方向位7-位0有效 set_dir_out = 0x000FC0FF; //D0-D7设置为输出 set_data_out = 0x000FC000; //D0-D7输出为低电平 if(CH341SetOutput(index_app, enable, set_dir_out, set_data_out)) { printf("CH341SetOutput : success\n"); } else { printf("CH341SetOutput : failed\n"); } 请查考上面的代码修改


感谢ch34x的回复, 如果I/O方向为输出已经理解掌握了,如果I/O方向为输入因为没找到资料,还没玩转,我决定打电话了。。。谢谢您的热心。


感谢,刚跟ch34x通过电话,已经测试通过了,I/O方向设置为输入时, 对应引脚接地,读状态位为0, 引脚悬空读到状态位为1。 引脚接+5V读到状态位为1。


请教一下CH341A的直接IO输出。。。CH341SetOutput。。。CH341Set_D5_D0如何用。。给行VB代码 谢谢


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