CH32F2x手册中关于GPIO口输出配置的一些疑惑,烦请大神解答,感激不尽

image.png

如上图所说,手册强调在开漏模式下,可以读取IDR的值来获取IO口状态,那么在推挽模式下不可以通过读取IDR的值来获取IO口状态吗?如果不可以,麻烦告诉下为什么?

还有第二个问题,在推挽模式下,可以读取ODR获取最后一次写入的值,那开漏模式下,是否也可以读取ODR获取最后一次写入的值?

麻烦大神来解答,感激不尽!!!!!

你好,如手册所说,IO口对外输出这些寄存器的值,你设置成输出模式的话设置的是ODR寄存器,读IDR肯定是读不到的。针对你的第二个问题,总结来说就是你设置ODR寄存器值是多少,读出的值就是多少,所以也就是你最后一次写入的值,读INDR的话就是上图所说的,读取输入数据寄存器将会得到 IO 口当前状态。最后一张图是我设置开漏输出高,没加上拉的打印结果供参考!

image.png

image.png


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