DM6437 GPIO模拟I2C

DM6437芯片的I2C总线因摄像头干扰无法正常读取ADS1000,故采用GPIO模拟I2C。问题在于SCL高电平时不能改变状态,导致读取异常。通过调整GPIO程序代码,实现了连续读取字节的功能。
摘要由CSDN通过智能技术生成

DM6437只有一个I2C总线,由于挂在总线上的摄像头的影响,导致不能正常读取ADS1000芯片,具体原因未能查明。现在只能用GPIO去模拟I2C总线。
下面是ADS1000中的I2C的介绍关键的说明:
这里写描述
之前由于没有注意到在SCL为高的时候不能更改状态,导致连续读取字节的时候只是正常读取了一个或两个字节(最后输出的高低有影响)。
下面是具体的程序代码:



#define SET_SCL_HIGH    EVMDM6437_GPIO_setOutput(SCL,1);
#define SET_SCL_LOW     EVMDM6437_GPIO_setOutput(SCL,0);

#define SET_SDA_HIGH    {\
                        EVMDM6437_GPIO_setOutput(SDA,1);\
                        }
#define SET_SDA_LOW     {\
                        EVMDM6437_GPIO_setOutput(SDA,0);\
                        }

//typedef EVMDM6437_GPIO_setDir(SDA,GPIO_IN);EVMDM6437_GPIO_getInput(SDA);  SET_SDA_HIGH
//typedef   EVMDM6437_GPIO_setDir(SDA,GPIO_OUT);EVMDM6437_GPIO_setOutput(SDA,0); SET_SDA_LOW


#ifdef  __cplusplus
extern 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值