搞了一天还是没有搞出来、几个问题1、不加镜头、可以检测到应答信号(这个真的是无法解决的大BUG啊)
2、反之,加上镜头、检测不到应答信号
(自己猜想是不是加上镜头的时候造成电流或者电压变大或者变小了)
能不能检测到应答信号通过查看PC4引脚是否输出高电平来检验
void CheckACK(void)
{ unsigned short i=200;SDAC=0;SDA=1;// 先由主机把数据线拉高释放总线 再去检测数据线的电平高低SDAC=1; //Config SDAC as InputSCL=1; //_delay(10); //Set SCL=1, Delay 10uswhile(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
}