STM32GPIO解析

13 阅读2分钟

本文以四个方面介绍GPIO(F1系列)

一:GPIO简介

二:GPIO的基本结构

三:GPIO的八种工作模式

GPIO简介

在嵌入式设计与开发中,GPIO是基本的外设,是CPU与内存连接外部世界的通路。有了GPIO,程序与算法才能影响现实。GPIO的作用有两个,一是信息采集,即GPIO输入,二是控制工作,即GPIO输出。

GPIO的基本结构

 输出部分有两种途径输出,一种是通过寄存器输出,一种是通过复用功能输出。输出部分包括位设置/清除寄存器(BSRR),输出数据寄存器(ODR),输出控制部分,以及P-MOS管和N-MOS管。

BSRR的作用是设置ODR寄存器的值,可以设置为1或0,设置为0相当与清除,ODR很好理解,就是一个内存。控制输出部分内部有一个反向器,可以把0转换为1,把1转换为0(这个转换器的作用在输出模式中可以用到)

P-MOS管与N-MOS管是压控型元件,通过控制栅源电压(vgs)来实现导通或关闭

输入有三种途径输入,一是模拟输入,二是复用功能输入,三是通过寄存器输入,前两者的输入对象是片上外设,而第三种是CPU,三种都要经过上/下拉电阻,模拟输入不需要经过肖特基触发器(也城施密特触发器)

肖特基触发器的作用是整形,把波形电压整形为方波,而上/下拉电阻是弱上/下拉电阻(通过的电流很小)

GPIO的八种工作模式

输出

开漏输出

P-MOS管始终不导通,肖特基触发器开启,上/下拉电阻关闭,在ODR写入0,N-MOS管导通,输出低电平,在ODR写入1,P-MOS管和N-MOS管都不导通,也就是说开漏输出只能输出低电平。

复用开漏输出

与开漏输出大差不差,只是输出途径是通过片上外设。

推挽输出

肖特基触发器开启,上/下拉电阻关闭,P-MOS管与N-MOS管开启,在ODR中写1,P-MOS管导通,输出高电平,在ODR写0,N-MOS管导通,输出低电平。

复用推挽输出

与推挽输出大差不差,只是输出途径是通过片上外设。

输入

浮空输入

不使用上下拉电阻,默认情况下电压不稳定

上拉输入

开启上拉电阻,关闭下拉电阻,默认情况下为高电平

下拉输入

开启下拉电阻,关闭上拉电阻,默认情况下是低电平

模拟输入

GPIO无效,直接输入ADC或CDA