http://【STM32入门教程-2023版 细致讲解 中文字幕-哔哩哔哩】 https://b23.tv/L2erOwo
基于该视频的学习笔记
一·GPIO简介
•
GPIO(General Purpose Input Output)通用输入输出口
•
可配置为8种输入输出模式
•
引脚电平:0V~3.3V,部分引脚可容忍5V
•
输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、
模拟通信协议输出时序等
•
输入模式下可读取端口的高低电平或电压,用于读取按键输入、外
接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等
1.引脚电平:数据0即代表0V;数据1即代表3.3V
2.部分引脚可容忍5V:如下图——STM32F103C8T6引脚定义,I/O口一列带FT(Five Tolerate)的均可容忍5V;不带FT的只能接入3.3V电压
![](https://img-blog.csdnimg.cn/direct/99969a5dd7694a25b3c5c743654d6928.png)
3.输出模式:但凡是需要输出高低电平来控制的地方,均可以用GPIO去完成,如若控制的是功率比较大的设备,只需要再加入驱动电路即可
4.输入模式:最常见的便是用于读取按键输入
二.GPIO基本结构
如图2左边APB2为外设总线,在STM32中所有GPIO均挂载在APB2在线上。每个GPIO外设接16引脚。STM32内核通过APB2总线对寄存器进行读写,以此完成输出电平和读取电平的功能。其中输出寄存器写1,对应引脚输出高电平,写0,就输出低电平;输入寄存器读取为1,就证明对应的端口目前是高电平,读取为0,就是低电平。
STM32的该寄存器是32位的,而每个GPIO只有16个引脚,所有该寄存器只有低16位对应外部16位引脚,而该寄存器的高16位并没有用到。
寄存器只负责存储数据,如果需要点灯等类似操作,还需要驱动器来负责增大驱动能力
![](https://img-blog.csdnimg.cn/direct/8f9a23f2f64e4441bbcb27e46cce279a.png)
![](https://img-blog.csdnimg.cn/direct/84d6255585c04153aa9b2c2952bdc942.png)
三.GPIO位结构
下面以图片的形式,形象的介绍一下GPIO位结构
四、GPIO几种重要的端口配置模式
![](https://img-blog.csdnimg.cn/direct/0ba272577f43460dbe25794aa3e8551f.png)
![](https://img-blog.csdnimg.cn/direct/9675f50549574b228b800d6fefdd3f50.png)