CH582硬件IIC多次读写数据流程

CH582硬件IIC多次读写数据流程是不是都需要例子中的这一段,还是说初始化完一次之后就可以只调用write_to和read_from函数,i2c_app_init要不要多次初始化了

image.png

您好,您圈出的(包括上面一行判忙的查询)是查询方式的硬件IIC主机。如果是用查询方式,需要发从机地址->发从机内部的寄存器/存储地址->读/写的具体内容,那么每次查询前都要调用圈出的代码段。
圈出的代码块下方是中断方式的IIC主机,也是上述读/写流程,不过是借助中断来判断当前的状态。i2c_app_init只需要调用一次。

查询方式和中断方式,二选一即可,选用中断方式就直接参考圈出代码下方的代码就可以。


请问下查询方式和中断方式的选择是怎么配置的,@TECH_JW


查询方式可以参考下篇博客,除了最基础的拉高拉低时序,每一步都要查询标志判断进度

硬件IIC的7位从机地址查询方式读写参考代码 - JayWell - 博客园 (cnblogs.com)
中断方式下,用i2c_app_init配置中断使能和状态机初始状态;中断触发后,中断服务函数中查询标志、状态机来判断接下来进行哪些操作,具体处理参考例程的app_i2c.c。


image.png

从博客抄了以下mpu6050和eeprom的连续读写驱动,如上测试代码,都会卡死

使用i2capp的驱动可以读出数据,但是不清楚如何设置读起始地址,目前读取的数据是不对的

测试设备是FT6236,addr和状态地址都是对的


@TECH_JW硬件上必须外接上拉电阻嘛



是否需要上拉,主要看IIC从机手册,从机手册要求有上拉就一定要加上拉电阻。

从机手册里没有要求的话,加5~10K的电阻上拉到V33一般也是可以的。


只有登录才能回复,可以选择微信账号登录