CH423的一些疑问

沁恒你好, 我用CH423做IO口扩充用,没有用到你的LED功能,目前有个问题解决不了: 我想让OC0~OC15都能单独输出低电平,于是对于OC0~OC7,先写0x44,对于不同IO口,再写: OC0:写????????b OC1:写11111110b OC2:写11111101b OC3:写11111011b OC4:写11110111b OC5:写11101111b OC6:写11011111b OC7:写10111111b 请问我如何让OC0输出低电平,实际上测试我发现写了0x44后,再写任何一个数OC0都会输出低电平,但是这个低电平是一直存在的,我无法让它开漏输出,即使写入0xff,OC1~0C7都会开漏,但0C0却还是输出低电平;同样,此问题也存在于OC8上。请问我如何才能控制OC0和OC8。

另外还有个IO0~IO7的输入问题,当我把IO0~IO7分别接低电平时,写入0x46,读到的数据分别是: IO0:11111111b IO1:11111110b IO2:11111101b IO3:11111011b IO4:11110111b IO5:11101111b IO6:11011111b IO7:10111111b 这样,当IO0~IO7都接高电平时,或者只有IO0接低电平时,读到的数据都是0xff,请问如果我想用IO0,我要怎么做?

首先,设置系统参数里面,您是否开了[DEC_H][DEC_L][IO_OE]位,如果没有开,就无法操作。


我的初始化是这样的: CH423_Write(0x48,0x00); CH423_Write(0x60,0xff); OC0~OC14我全部用来做输出用,IO0~IO7 我用来做输入用,不知道这样有没有问题。


您可以这样发: CH423_Write(0x48,0x00); CH423_Write(0x44,0x00); CH423_Write(0x46,0x00); 这样0C0-0C15全部输出低电平。


是的,这样全部输出低电平,但是无论我如何操作,OC0和OC8总会输出低电平,无法输出高阻态。下面是我测试的控制各个OC脚的值: OC0:写????????b OC1:写11111110b OC2:写11111101b OC3:写11111011b OC4:写11110111b OC5:写11101111b OC6:写11011111b OC7:写10111111b 但是无论写什么数据,OC0总会输出低,我控制不了,怪了。


控制各个OC脚的值: OC0:写11111110b OC1:写11111101b OC2:写11111011b OC3:写11110111b OC4:写11101111b OC5:写11011111b OC6:写10111111b OC7:写01111111b 如果还是不对,检查您的PCB的0C0引脚是否被其他电路一直拉低,由于0C脚没有高电平的驱动能力,需要外接上拉电阻。


怪了,我测试的对OC1~OC7的控制值和你的值右移了一个BIT。 我的OC0没有被其他电路占用,系统复位时OC0是输出的高阻,但我的CH423_Write(0x44,0xXX);都会使OC0低电平,同样的OC8和IO0也存在问题,我再查下我的硬件。


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