stm32的GPIO工作方式
这篇文章只是总结一下,stm32GPIO的输入输出方式,当做笔记了(图来自于原子的参考手册)。
GPIO的输入方式
GPIO一共有四种输入模式,分别是输入浮空、输入上拉、输入下拉、模拟输入。具体见下表:
名称 | 具体解释 |
---|---|
输入浮空 | 逻辑器件的输入引脚不接高电平,也不接低电平。(一般来说,引脚浮空意味着接高电平,这是由它的内部构造决定的) |
输入上拉 | 通过电阻的作用将一个信号拉到高电平 |
输入下拉 | 通过电阻的作用将一个信号拉到低电平,即GND |
模拟输入 | 指输入模拟信号(模拟量),也就是说,模拟输入就是输入连续信号。 |
下面是我看原子的视频留下的截图,可以看图然后思考原理:
- 输入浮空模式
- 输入上拉模式
- 输入下拉模式
- 模拟输入
GPIO的输出方式
GPIO一共有四种输出模式,分别是开漏输出、开漏复用功能、推挽式输出、推挽式复用功能。具体见下表:
名称 | 具体解释 |
---|---|
开漏输出 | 输出端相当于三极管的集电极。要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20mA以内)。 |
推挽式输出 | 可以输出高,低电平,连接数字器件; 推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。高低电平由 IC 的电源低定。 |
推挽式复用功能/开漏复用功能 | 可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用),端口必须配置成复用功能输出模式(推挽或开漏)。 |
下面是我看原子的视频留下的截图,可以看图然后思考原理:
- 开漏输出模式
- 开漏复用输出模式
- 推挽输出模式
- 推挽复用输出模式
GPIO的配置参考(寄存器版本)
根据上面的两张表,我们可得到将对应的寄存器设置为0/1时的具体输入输出情况,也就是说,以后我们在配置GPIO口时,就可以按照这个框架来,然后查找具体的寄存器,对比每个位的作用,置0或者置1,然后达到自己的目的。(当然,如果需要找一些例子的话,可以参考流水灯和呼吸灯实验,GPIO口的配置是必须要掌握的)