本帖最后由 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源码。
|