搞了一天还是没有搞出来、几个问题1、不加镜头、可以检测到应答信号(这个真的是无法解决的大BUG啊)
2、反之,加上镜头、检测不到应答信号
(自己猜想是不是加上镜头的时候造成电流或者电压变大或者变小了)
能不能检测到应答信号通过查看PC4引脚是否输出高电平来检验
void CheckACK(void)
{ unsigned short i=200;
SDAC=0;
SDA=1;// 先由主机把数据线拉高释放总线 再去检测数据线的电平高低
SDAC=1; //Config SDAC as Input
SCL=1; //_delay(10); //Set SCL=1, Delay 10us
while(i--)
{
//Test_Pc4C=0; //如果从机应答的话把这个引脚电平拉高
//Test_Pc4=1;
if(!SDA) {
//DeviceFlag=1;
Test_Pc4C=0; //如果从机应答的话把这个引脚电平拉高
Test_Pc4=1;
//_tmpc0=0;//取消PC5引脚的复用功能
//Test_Pc5C=0; //如果从机应答的话把这个引脚电平拉高
//Test_Pc5=1;
break;
}//Break if Device Respounding
_delay(100);
//200*100uS=2ms Waiting Time
}
SCL=0; _delay(10); //Set SCL=0, Delay 10us
}