关于STM32的I/O端口配置复用输入功能时的用法
请看下图,这是STM32 I/O端口的功能框图,你可以在STM32的技术参考手册里看到。
STM32中每个I/O端口都有8种配置模式:
1)输入浮空
2)输入上拉
3)输入下拉
4)模拟输入
5)开漏输出
6)推挽式输出
7)推挽式复用功能
8)开漏复用功能
但没有复用输入模式,如果要使用复用输入功能如何配置端口呢?
从图中可以看到复用输入通道是从施密特触发器的输出端引出,没有控制开关,因此要使用复用输入模式,端口可以根据需要配置为输入浮空、输入上拉或输入下拉的任意一种。
那么3楼的问题如何解释呢?同样从图中看到,当端口配置为任一输出模式时,输入通道始终是处于打开的状态,也就是说复用输入通道始终是可以使用的,所以3楼那样的配置仍然能够得到正确的结果。
但同时我们也看到,因为打开了输出通道(即2个MOS管不是同时处于关闭状态),端口管脚上会有驱动信号,会与外部器件产生冲突,所以最好不要这样使用;如果没有使用外部器件连接,或使用开路输出模式,则可以利用这个特性模拟双向的I/O操作,或软件的环回模拟。