大学生电子设计竞赛
直播中

刘丹芹

7年用户 162经验值
私信 关注
[问答]

请问关于瑞萨RX23T硬件IIC读取从机的寄存器问题

硬件IIC如何读取从机寄存器中的数据?
用IIC协议读取从机寄存器数据时
读从机寄存器地址时要在写入从机地址和寄存器地址之后马上再写开始位,但是硬件IIC在写完上述内容后会自动产生停止位,要怎么避免这种问题?

回帖(2)

李德鹏

2018-7-23 05:26:11
你参考下面的例子,先写从机寄存器地址,然后读数据。
 
/* 读一个字节的数据*/
uint8_t iic_single_read(uint8_t reg_addr,uint8_t* read_data)
{
 uint8_t ret=0;
 delay(10);
 iic_send_end_flag = 0;
 R_RIIC0_Master_Send(MPU6050_SLAVE_ADDR,®_addr,1);
 while(iic_send_end_flag == 0) nop();
 delay(1);
 iic_send_end_flag = 0;
 iic_ret_status = R_RIIC0_Master_Receive(MPU6050_SLAVE_ADDR,read_data,1);
 while(iic_rev_end_flag==0) nop();
 iic_rev_end_flag = 0;
 delay(10);
 return ret;
}
举报

刘丹芹

2018-7-23 05:34:03
引用: szzjfyp 发表于 2018-7-23 05:26
你参考下面的例子,先写从机寄存器地址,然后读数据。
 
/* 读一个字节的数据*/

嗯,谢谢,
举报

更多回帖

发帖
×
20
完善资料,
赚取积分