1、GPIO简介
GPIO(General Purpose Input Output)通用输入输出口:
(1)STM32F103微控制器的GPIO最多可以提供最多112个(7*16)个多功能双向I/O引脚,引脚分布在GPIOA~GPIOG等端口中。每个端口有16个I/O引脚,从0开始,直到15为止。例如:GPIOA有16个引脚,分别是PA0~PA15。
(2)可配置为8种输入输出模式。
(3)GPIO都是挂载在APB2外设总线上的。
(4)引脚电平:0V~3.3V,部分引脚可容忍5V。
(5)输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等。
(6)输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等。
2、GPIO工作模式
通过配置GPIO的端口配置寄存器,端口可以配置成以下8种模式:
3、GPIO基本结构
说明:
存储器:负责存储数据。
驱动器:增加信号的驱动能力。
4、GPIO引脚内部结构图
(1)浮空/上拉/下拉输入
(2)模拟输入
(3)开漏/推挽输出
说明:
推挽输出:P-MOS,N-MOS均有效,即低电平,高电平均有驱动能力。
开漏输出:P-MOS无效,N-MOS有效,即低电平有驱动能力,高电平没有驱动能力,即为高组态。
(4)复用开漏/推挽输出
5、GPIO操作步骤
(1)使用RCC开启GPIO时钟
(2)使用GPIO_Init函数初始化GPIO
(3)使用输入或者输出的函数控制GPIO
说明:
具体用法可查阅资料
6、输入设备
(1)按键
注意消除抖动
(2)传感器
传感器元件(光敏电阻/热敏电阻/红外接收管等)的电阻会随外界模拟量的变化而变化,通过与定值电阻分压即可得到模拟电压输出,再通过电压比较器进行二值化即可得到数字电压输出。
(3)硬件电路
7、输出设备
(1)LED
发光二极管,正向通电点亮,反向通电不亮。
(2)蜂鸣器
有源蜂鸣器:内部自带振荡源,将正负极接上直流电压即可持续发声,频率固定。
无源蜂鸣器:内部不带振荡源,需要控制器提供振荡脉冲才可发声,调整提供振荡脉冲的频率,可发出不同频率的声音。