|
uint8_t i2c_CheckDevice(uint8_t i2cId,uint8_t addr)
{
uint8_t ucAck = 0;
// uint8_t busy ;
// BSP_IIC_config();
/* 發(fā)送啟動(dòng)信號(hào) */
BSP_I2C_Start(i2cId); // 0 0
/* 發(fā)送設(shè)備地址*/
BSP_I2C_Send_Byte(i2cId, addr | I2C_WR);
/* 檢測(cè)設(shè)備的ACK應(yīng)答 */
ucAck = BSP_I2C_Check_waitAck(i2cId); // 沒(méi)有用原來(lái)那個(gè)超時(shí)才返回的,直接讀去了
DEBUG(" ack : %02x \r\n",ucAck);
// busy = BSP_IIC_isBusy(i2cId);
// DEBUG("BUSY5:%02x\r\n",busy); // 在這邊sda被拉高
/* 發(fā)送停止信號(hào) */
BSP_I2C_Stop(i2cId);
return ucAck; //怎么讓不連接設(shè)備的時(shí)候scl sda輸出高?
}
在有設(shè)備的時(shí)候會(huì)拉高SDA,但是沒(méi)有設(shè)備的時(shí)候SDA也是低,導(dǎo)致沒(méi)設(shè)備還產(chǎn)生回復(fù)幀。等大佬解答。
|
|