uint8_t I2C_WriteByteOneReg(I2C_T *i2c, uint8_t u8SlaveAddr, uint8_t u8DataAddr, uint8_t data)
这个函数的作用是往u8SlaveAddr指定地址的I2C从机的u8DataAddr数据地址里写入一个字节的数据data
时序为START+u8SlaveAddr+w+ACK+DataAddr+ACK+data+NAK+STOP
请检查时序是否吻合您的应用。两处ACK的地方如果收到的是NAK会停止发送。
可以debug看一下I2C处理那种状态,我们的I2C所有动作后会有状态指示。
uint8_t I2C_WriteByteOneReg(I2C_T *i2c, uint8_t u8SlaveAddr, uint8_t u8DataAddr, uint8_t data)
这个函数的作用是往u8SlaveAddr指定地址的I2C从机的u8DataAddr数据地址里写入一个字节的数据data
时序为START+u8SlaveAddr+w+ACK+DataAddr+ACK+data+NAK+STOP
请检查时序是否吻合您的应用。两处ACK的地方如果收到的是NAK会停止发送。
可以debug看一下I2C处理那种状态,我们的I2C所有动作后会有状态指示。
举报