GPIO
1 概述
GPIO(通用输入输出端口,General Purpose Input Output),主要负责采集外部器件的信息或者控制外部器件工作,及输入输出
2 特性
2.1 GPIO特点
- 不同型号,IO 口数量可能不一样,可通过选型手册快速查询
- 快速反转,每次反转最快只需要 n 个时钟周期
- 每个 IO 口都可以做中断
- 支持 8 种工作模式
2.2 GPIO 电气特性
- STM8 工作电压范围:: 1.65 - 3.6V
- GPIO 识别电压范围: Vss - 0.3 ≤ VIL ≤ 0.3 * VDD
0.7 * VDD ≤ VIH ≤ 5.2V - GPIO 输出电流:单个 I/O,最大 25mA
参考数据手册电气特性
2.3 GPIO 引脚分布
电源引脚、晶振引脚、复位引脚、下载引脚、BOOT引脚、GPIO引脚
3 GPIO 是如何工作的?(GPIO 框图)
①保护二极管,起钳位作用
②内部上拉、下拉电阻
③施密特触发器
施密特触发器是一种整形电路,可以将非标准方波,整形成方波
特点:
当输入电压高于正向阈值电压,输出为高;
当输入电压低于负向阈值电压,输出为低;
当输入在正负向阈值电压之间,输出不改变。
④P-MOS & N-MOS管
MOS 管事电压型控制元件,通过控制栅极电压(Vgs)来实现导通或关闭。
G:栅极
S:源极
D:漏极
P-MOS:Vgs < 0,导通
N-MOS:Vgs > 0,导通
4 GPIO的八种模式分析
5 相关寄存器
- Px_ODR 端口数据输出寄存器(Output data register)
作用:当为输出模式时,配置输出引脚的电平 - Px_IDR 端口数据输入寄存器(Input data register)
作用:当为输出模式时,配置输入数据的初始值 - Px_DDR 端口数据方向寄存器(Data direction register)
作用:配置方向为输入或输出 - Px_CR1 端口控制寄存器1(Port control register 1)
作用:配置输入或输出模式 - Px_CR2 端口控制寄存器2(Port control register 2)
作用: 对输入是配置外部中断,对输出是配置输出速率
6 GPIO 输入输出实验配置
- 开启 GPIO 时钟
- 初始化 GPIO
- 控制 I/O 输出高/低电平
- 每次调用 I/O 输出电平反转一次
- 读取 I/O 电平
7 Note
Note
- 推挽输出和开漏输出的区别?
开漏:MOS 管的漏极没接就是开漏
推挽、开漏、高阻态 - 复用功能
“复用功能输出”中的“复用”是指 STM8 的其它片上外设对 GPIO 引脚进行控制,此时 GPIO 引脚用作该外设功能的一部分,算是第二用途。 - 外部中断
每一个 I/O 都可以配置成外部中断,可以单独使能和关闭。