深入了解STM32 GPIO电路及应用介绍
文章目录
1 GPIO介绍
2 GPIO的工作模式
2.1 浮空输入
数据流向:电压直接由GPIO引脚通过施密特触发器转化为高低电平后,将数据存储到输入数据寄存器中,微处理器就可以读取输入寄存器的数据。
特点:处于该模式的GPIO口未接外设,处于悬空状态时,引脚的电平是不确定的,此时读取输入寄存器的值是不确定的。
2.2 上拉输入
与浮空输入的区别在于,上拉输入模式下,上拉电阻上方的开关会闭合,I/O端口的电压就会Vdd小一点,也就是说,当引脚属于悬空状态时,引脚默认是高电平。
数据流向:与浮空输入相同。
特点:当输入引脚悬空时,输入是高电平。
2.3 下拉输入
与浮空输入的区别在于,上拉输入模式下,上拉电阻上方的开关会闭合,I/O端口的电压就会Vss大一点,也就是说,当引脚属于悬空状态时,引脚默认是低电平。
数据流向:与浮空输入相同。
特点:当输入引脚悬空时,输入是低电平。
2.4 模拟输入
浮空输入、上拉输入、下拉输入模式下,输入的都是数字信号,而模拟输入是直接将外部的模拟信号输入,因此,上拉电阻、下拉电阻、施密特触发器的开关都会断开,输入引脚的电平直接到内部。
数据流量:外部端口引脚直接连接到内部进行模拟输入。
特点:用于模拟信号的输入。
注意:只有ADC和DAC需要将IO端口配置为模拟通道,其他外设功能需要将IO配置为复用功能模式。
2.5 开漏输出
数据流向:处理器将数据写入输出数据寄存器,写入过程中可以通过位设置/清除寄存器(BSRR
)修改单个位的数据,输出数据寄存器中的数据通过输出控制电路,然后通过N-MOS管到达外部输出引脚。同时,外部引脚的电平还可以通过浮空输入模式读取。
特点:当输出数据0时,N-MOS管导通,输出低电平;当输出数据1时,N-MOS管截止,输出引脚为高阻态
(如果需要输出高电平,需要外接上拉电阻)。
2.6 推挽输出
特点:当输出数据0时,输出低电平;当输出1时,输出高电平。开关速度快,负载能力强,是最常使用的输出模式。
2.7 复用开漏输出
特点:与开漏输出的区别是,复用开漏输出是从片上外设输出。
2.8 复用推挽输出
特点:与推挽输出的区别是,复用推挽输出是从片上外设输出,串口通信中经常使用复用推挽输出。
2.9 其他
上电复位后,GPIO引脚默认为浮空状态,部分特殊引脚为特定状态。
3 应用方式
注:常规使用GPIO时,输出通常使用推挽输出,输入则使用上拉输入或者下拉输入,具体需要根据外部器件的电路确定。
4 常用库函数
作者:luofengmacheng