现在用stm32的F103芯片用GPIO模拟i2c读取bq40z50电源管理芯片的数据,
unsigned char i2cRead(void)
{
unsigned char count=8,Data=0;
DAT_IN;//set SDA as input
//NOP(4);
while(count--)
{
SET_CLK;delay();
Data=Data<<1;//Data shift left 1 bit
if(READ_DAT)//==1)//问题:READ_DAT永远不为1
Data=Data|0x01;//read data and save in Data
CLR_CLK;delay();
}
DAT_OUT;//set SDA as input
delay();
return(Data);
}
问题:READ_DAT永远不为1,导致读不到正确的数据,用示波器量也量不到波形,能给个建议我应该怎么做? |