我这里用i2c的时候发地址过去总是应答失败 是什么原因呢,
//起始信号
I2C_Start();
while(I2C_SR1_SB != 1); //读SR1寄存器,清除SB标志位
temp = I2C_SR1;
//发送从器件地址
I2C_DR = 0x00 ; //发送从器件地址 最低位0 表示写操作
while((I2C_SR1&0x02) != 1); //地址已被发送 卡在这里
temp = I2C_SR1;
temp = I2C_SR3; //清除标志位
//发送从器件 存储地址
while(I2C_SR1&0X80 ==0); //等待发送寄存器空
I2C_DR = address;
while(I2C_SR1&0X04 ==0); //等待发送完成
//发送数据/
while(I2C_SR1&0X80 ==0); //等待发送寄存器空
I2C_DR = data;
while(I2C_SR1&0X04 ==0); //等待发送完成
temp = I2C_SR1; //清零BIF位 |