华东理工大学☜
一宇天下94
只愿得一人心....
关注数: 31
粉丝数: 91
发帖数: 3,885
关注贴吧数: 84
大佬们 求帮助 这个IIC的程序读地址中有个返回值num,小弟看不懂,这个函数形参不是地址吗 这个num最后是读取的是数据,,懵逼了 大佬们帮我分下这段代码,返回值的作用,以及返回值去哪里读,在此多谢了, unsigned char At24c02Read(unsigned char addr) { unsigned char num; I2cStart(); I2cSendByte(0xa0); //发送写器件地址 I2cSendByte(addr); //发送要读取的地址 I2cStart(); I2cSendByte(0xa1); //发送读器件地址 num=I2cReadByte(); //读取数据 I2cStop(); return num; } 这个返回的num看不大懂, /////////////////////////////////////////////// unsigned char I2cSendByte(unsigned char dat) { unsigned char a=0,b=0;//最大255,一个机器周期为1us,最大延时255us。 for(a=0;a<8;a++)//要发送8位,从最高位开始 { SDA=dat>>7; //起始信号之后SCL=0,所以可以直接改变SDA信号 dat=dat<<1; Delay10us(); SCL=1; Delay10us();//建立时间>4.7us SCL=0; Delay10us();//时间大于4us } SDA=1; Delay10us(); SCL=1; while(SDA)//等待应答,也就是等待从设备把SDA拉低 { b++; if(b>200) //如果超过2000us没有应答发送失败,或者为非应答,表示接收结束 { SCL=0; Delay10us(); return 0; } } SCL=0; Delay10us(); return 1; } 还有这段代码中的返回值只是充当一个退去函数的作用把
1
下一页