PT2315使用i2c协议没有ack应答,一直在等,明明地址是正确的,但第九位确仍然是高电平,然后程序就一直在等,没有回应了,15地址是0x80
*********************************************************************************************************
* 等待应答的程序
*********************************************************************************************************
*/
uint8_t i2c_WaitAck(void)
{
uint8_t re;
//SDA=1;
i2c_Delay();
//NOP4();
SCL=1;
i2c_Delay();
//NOP4();
if (SDA==1)
{
re = 1;
}
else
{
re = 0;
}
//while(SDA==1)
SCL=0;
i2c_Delay();
re=0;
return re;
}
uint8_t ee_WriteOneBytes(u8 value){
//uint16_t m;
i2c_Stop()
i2c_Start();
N_nop;
N_nop;
N_nop;
N_nop;
i2c_SendByte(PT2315_Addr);
if (i2c_WaitAck() != 0)
{
goto cmd_fail1;
}
N_nop;
N_nop;
N_nop;
N_nop;
i2c_SendByte(value);
N_nop;
N_nop;
N_nop;
N_nop;
if (i2c_WaitAck() != 0)
{
goto cmd_fail1;
}
i2c_Stop();
return 1;
cmd_fail1:
i2c_Stop();
return 0;
}
|