diff --git a/rt-thread-version/rt-thread-standard/programming-manual/device/i2c/i2c.md b/rt-thread-version/rt-thread-standard/programming-manual/device/i2c/i2c.md index 50f5842fcf877ef28656997f2a9f49fbe4005676..a31e2f1f44bddcca0559f27ca738eb20ead09a26 100644 --- a/rt-thread-version/rt-thread-standard/programming-manual/device/i2c/i2c.md +++ b/rt-thread-version/rt-thread-standard/programming-manual/device/i2c/i2c.md @@ -180,15 +180,20 @@ static rt_err_t write_reg(struct rt_i2c_bus_device *bus, rt_uint8_t reg, rt_uint { rt_uint8_t buf[3]; struct rt_i2c_msg msgs; + rt_uint32_t buf_size = 1; buf[0] = reg; //cmd - buf[1] = data[0]; - buf[2] = data[1]; + if (data != RT_NULL) + { + buf[1] = data[0]; + buf[2] = data[1]; + buf_size = 3 + } msgs.addr = AHT10_ADDR; msgs.flags = RT_I2C_WR; msgs.buf = buf; - msgs.len = 3; + msgs.len = buf_size; /* 调用I2C设备接口传输数据 */ if (rt_i2c_transfer(bus, &msgs, 1) == 1) @@ -226,7 +231,7 @@ static void read_temp_humi(float *cur_temp, float *cur_humi) { rt_uint8_t temp[6]; - write_reg(i2c_bus, AHT10_GET_DATA, 0); /* 发送命令 */ + write_reg(i2c_bus, AHT10_GET_DATA, RT_NULL); /* 发送命令 */ rt_thread_mdelay(400); read_regs(i2c_bus, 6, temp); /* 获取传感器数据 */