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