一、GPIO基础知识
1.GPIO是什么?
GPIO
的全称是general purpose intput output
。它是通用输入输出端口。既可以做输入也可以做输出。GPIO
端口可通过程序配置成输入或者输出。
2.引脚和GPIO的区别和联系?
STM32F4
的引脚中,有部分是做GPIO
使用,部分是电源引脚/复位引脚/启动模式引脚/晶振引脚/调试下载引脚。
- 一共有9组
IO
:PA~PI
,其中PA~PH
每组16个IO
,PI
只有PI0~PI11
,一共有140个IO
口:16*8+12=140
STM32F4
中约有140个引脚可做IO
口使用,还有36个引脚可做电源引脚/复位引脚/启动模式引脚/晶振引脚/调试下载引脚等
3.绝多数引脚都是GPIO,有限的引脚怎么实现更多的功能?
STM32
的大部分引脚除了当GPIO
使用外,还可以复用为外设功能引脚(比如串口)。一个引脚,可以作为IO
口,同时也可以作为复用功能外设引脚。
复用的原理 可以用图像抽象如下:
通过开关控制引脚组,可以大大节省IO
口资源。
4. 怎么知道具体的芯片外设资源?
可以通过查找ST MCU
选型手册来查找。
5.怎么查看GPIO引脚功能?
每个STM32
芯片的芯片数据手册(例如:STM32F429IGT6.pdf
)都会提供引脚功能描述,如下表。
其中的FT
标识表示该IO
口可以5V容忍。
二、GPIO的8种工作模式
GPIO
有8种工作模式:
-
4种输入模式
-
输入浮空
IO
口电平直接进入TTL
施密特触发器(上拉与下拉均没有起作用),然后到达输入数据寄存器,这样CPU
可以通过输入数据寄存器来读取IO
口的状态 -
输入上拉
输入上拉与输入浮空的区别就是上拉会起作用。 -
输入下拉
输入下拉与输入浮空的区别就是下拉会起作用。 -
模拟输入
IO
口电平直接进入模拟通道,ADC控制单元采集电压信号,CPU读取ADC控制单元相关的寄存器来读取模拟信号并且转化为数字信号(不是CPU转换的,而是ADC控制单元转换的)。
-
-
4种输出模式(带上下拉)
-
开漏输出(带上拉或者下拉)
-