利用rtt_studio开发,读取寄存器的时候正常,
代码如下,/* 写传感器寄存器 */
static rt_err_t write_reg(struct rt_i2c_bus_device *bus, rt_uint8_t reg, rt_uint32_t data)
{
rt_uint8_t buf[4];
struct rt_i2c_msg afe_msgs;
buf[0] = reg;
buf[1] = (rt_uint8_t)data>>16;
buf[2] = (rt_uint8_t)data>>8;
buf[3] = (rt_uint8_t)data;
afe_msgs.addr = AFE_ADDR;
afe_msgs.flags = RT_I2C_WR;
afe_msgs.buf = buf;
afe_msgs.len = 4;
/* 调用I2C设备接口传输数据 */
if (rt_i2c_transfer(bus, &afe_msgs, 1) == 1)
{
rt_thread_mdelay(30);
return RT_EOK;
}
else
{
return -RT_ERROR;
}
}
//如下为写的代码
write_reg(i2c_bus,0x01,0x0000002B); /*LED2STC*/
write_reg(i2c_bus,0x02,0x00000033); /*LED2ENDC*/
write_reg(i2c_bus,0x03,0x00000043); /*LED1LEDSTC*/
write_reg(i2