HT68F30控制5150 IIC控制总线

来源:互联网 发布:js中的window.onload 编辑:程序博客网 时间:2024/04/30 02:20

1、关于应答信号的一点知识

数据传输与应答信号ACK 发送到SDA线上的数据必须是8位的。每次传输可以发送的数据不受限制。每个字节后必须在时钟的第9个脉冲期间释放数据总线(SDA为高), 由接收器发送一个ACK(把数据总线的电平拉低)来表示数据成功接收。 IIC总线应答信号、主机拉高、释放总线、如果从机拉底表示有应答、如果从机不拉低、表面没有应答

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; _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}


原创粉丝点击