下边是我之前做的时候写的代码,需要的可以参考
/*获取温湿度*/
bool eb_I2C_SHT30_Read(unsigned int tickMs)
{
uint8_t TempH,TempL,CRCT;
uint8_t HumiH,HumiL,CRCH;
if (!I2C1_Start()) //根据函数返回值判断是否设置成功
{
return false;
}
I2C1_SendByte(SHT30_IIC_ADDR1 << 1 | I2C1_Direction_Transmitter); //设置器件地址,设置为发送
if (!I2C1_WaitAck()) //读SDA电平,拉低则接受端成功
{
I2C1_Stop();
return false;
}
//--------------------------------------------------------/发送FETCH DATA COMMAND/------------------------------------------------//
I2C1_SendByte(0xE0); //发送读取高8位命令
if (!I2C1_WaitAck()) //等待从设备回应
{
I2C1_Stop();
return false;
}
I2C1_SendByte(0x00);