打印

GD32E103 I2C做主机访问外部IQS620A(已通)

[复制链接]
738|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
lvben5d|  楼主 | 2022-4-15 08:47 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 lvben5d 于 2022-5-19 15:13 编辑

最新用到GD32E103得硬件I2C 访问IQS620 (电容感应触摸) 遇到如下一个问题,由于第1次使用,理解不透,特上传这个IQS620A的I2C访问时序图 来对GD32E103 用户编程手册。
       图片中,当GD32E103得I2C主机模式 发送器件访问地址写 并等待620A应答后,可以写入1个字节。此时 I2C主机 按照620手册,需要等待1个ACK后,重新Start ,问题来了,这里等待应答 选择是while(!i2c_flag_get(I2C0, I2C_FLAG_TBE));     还是  while(!i2c_flag_get(I2C0, I2C_FLAG_TBC));     完成后重新 Start
问题2: 主机是在接收最后1个字节之前(倒数第2各字节)发NACK,还是最后1个字节  发NACK(I2C_ACKPOS_CURRENT)? 然后再STOP

备注; 按照官网EXAMPLE 可以调通,直接COPY源码。

1649983380(1).png (24.87 KB )

1649983380(1).png

使用特权

评论回复
沙发
lvben5d|  楼主 | 2022-5-17 14:18 | 只看该作者
本帖最后由 lvben5d 于 2022-5-19 15:14 编辑

用户地址 比如是 0x44   那么我们初始化I2C得时候  要成为  0x88   也就是左移1位才对。 把bit0空出来

c130e3520c3d5ed5b501bc0ebf2a14a.png (10.2 KB )

c130e3520c3d5ed5b501bc0ebf2a14a.png

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

95

主题

746

帖子

12

粉丝