STM32之GPIO输出原理

一般初学者心中都有这样一个疑惑:为什么我写个程序就能控制引脚输出高低电平?代码执行到引脚电平输出,单片机是怎么一步步工作的?
下面就简单介绍下GPIO工作原理

上图从右往左看,I/O引脚最终要么和Vdd导通要么和Vss导通,和Vdd导通就可以量到高电平信号,和Vss导通就可以量到低电平信号,这就是引脚输出高低电平的基本原理。I/O引脚接通Vdd还是Vss是由输出控制决定的,输出控制又是由输出数据寄存器决定的(假设复用功能已配置为通用输出模式)。所以当我们对输出数据寄存器进行写操作时,就直接影响了I/O引脚输出高电平还是低电平,这就是控制GPIO输出高低电平的原理。
从图中还可以看出,输入数据寄存器是一直和I/O引脚连通着的,所以将GPIO设置为通用输出模式时,我们甚至还可以去读输入数据寄存器的值,来获取当前I/O引脚的电平状态。

你可能感兴趣的:(STM32)