u8 Take_Range_Reading(u8 slave_address) { IIC_Start(); IIC_Send_Byte(slave_address); // 发送设备地址+写信号 if (!IIC_Wait_Ack()) { IIC_Stop(); return RESET; } delay_us(40); IIC_Send_Byte(0x51); // 内部寄存器地址 if (!IIC_Wait_Ack()) { IIC_Stop(); return RESET; } IIC_Stop(); return SET; }
时间: 2023-06-19 16:10:39 浏览: 88
IIC.zip_iic slave C_iic 从机
这段代码是用来读取一个IIC设备的数据,具体来说是读取一个范围传感器的数据。其中,函数的参数是设备的从机地址。函数首先发送从机地址加上写信号,然后等待应答。如果没有应答,函数会返回RESET。接着,函数发送范围传感器的内部寄存器地址,再次等待应答。最后,函数发送停止信号,并返回SET表示读取成功。在这个过程中,需要使用到具体的IIC通信函数,比如IIC_Start(), IIC_Send_Byte()和IIC_Wait_Ack()等。
阅读全文