我在用STM32通过模拟I2C读取ADXL345的DEVICE ID时,发现读取到的都是0,但是ADXL345模块在51上完美运行,我怀疑是端口输入输出设置的问题,下面贴上我的代码,我使用的是PB10为SCL,PB11为SDA
#define SDA_IN() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=8<<12;}
#define SDA_OUT() {GPIOB->CRH&=0XFFFF0FFF;GPIOB->CRH|=3<<12;}
#define IIC_SCL PBout(10)
#define IIC_SDA PBout(11)
#define READ_SDA PBin(11)
主程序
while(1)
{
t=ADXL345_RD_Reg(DEVICE_ID);
printf("%x \r\n",t);
}
就是想通过串口输出t的值,但是却永远是0,跪求大神帮忙啊 |