CH32V103 模拟IIC 端口模式切换后读取异常。

模拟IIC 

发送设备地址+发送寄存器地址+发送设备地址+读取数据1+读取数据2

在读取ACK 时, 1:SDA切换成输入,2:SDA读取电平,3:SDA切换成输出。

读取的操作。导致了我 发送寄存器地址、读取数据1 这两段代码异常。

屏蔽了读取电平的操作就没什么问题。

搞不清楚是我在设置GPIO还是哪里有了问题。

我的IIC有上拉电阻。 我的初始化的时候 设置的端口为开漏输出。

附件为完整代码 。

icon_rar.gifKeart System V0.3.zip

1686279153783343.png

1686279153288119.png

1686279153612326.png

1686279154401837.png


您好,读取SDA引脚电平不需要再重新配置成输入模式,可直接读取引脚状态,在开漏输出模式下,直接读取输入寄存器会得到IO状态,如下图手册介绍。关于GPIO这部分具体介绍,可参考CH32V103应用手册,下面链接为应用手册下载链接:

https://www.wch.cn/downloads/CH32xRM_PDF.html

下面链接为CH32V103模拟IIC 应用例程,可以参考一下:

https://bbs.21ic.com/icview-3060796-1-1.html

后续若有问题,可通过邮箱(lzs@wch.cn)和我沟通。 


image.png



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