文章目录
前言
此章介绍外设GPIO,个人认为GPIO极为重要所以,我会尽我能力详细讲解GPIO外设(参考《STM32F10xxx参考手册》第八章)。
一、GPIO外设是什么?
1.GPIO英文全称General Purpose Input Output,即通用输入输出口
2.可配置8种输入输出模式
3.引脚电平:0V~3.3V,部分引脚能够容忍5V
二、I/O端口位的基本结构
接下来,我将以上图标注顺序进行讲解
- 保护二极管:主要作用是保护内部电路。当输入电压大于Vdd时,上方二极管导通输入电压产生的电流直接流入Vdd而不流入电路;当输入电压小于Vss时,下方二极管导通,电流直接从Vss流出。
- 上拉电阻与下拉电阻:主要作用是为输入提供一个默认的输入电平,首先上拉及下拉电阻阻值极大故对电路产生的影响较小。若上方开关为开,则默认为高电平;反之当下方开关为开,则默认为低电平;二者同时不开,即位浮空状态。
- TTL肖特基触发器:主要作用是整形,通俗来讲就是使用上下阈值将夹杂了波动的电平信号整形,以免出现误判的情况。
- MOS管:主要作用是充当开关,在图上表示两个MOS管一共拥有三种模式,首先,推挽模式(强推模式)当输出数据寄存器为1时,输出高电平,特点就是操控权在STM32手上;其次,开漏模式,特点当输出数据寄存器为1时,会处于高阻态模式,该模式常作用于通信协议的驱动方式,最后,关闭模式,端口的电平由外部信号来控制。
三、八种输入输出模式
1.浮空输入
浮空输入在基本结构图中的表现主要为上拉电阻及下拉电阻同时关闭。
特点:若引脚悬空,则电平不确定
2.上拉输入
上拉输入在基本结构图中的表现主要为上拉电阻打开及下拉电阻关闭。
特点:若引脚悬空,则电平默认高电平
3.下拉输入
下拉输入在基本结构图中的表现主要为上拉电阻关闭及下拉电阻打开。
特点:若引脚悬空,则电平默认低电平
4.模拟输入
模拟输入在基本结构图中的表现主要为TTL肖特基关闭。
特点:GPIO无效,引脚直接接入内部ADC
5.开漏输出
开漏输出在基本结构图中的表现主要为两个MOS管处于开漏模式。
特点:高电平为高阻态
6.推挽输出
推挽输出在基本结构图中的表现主要为两个MOS管处于推挽模式。
特点:STM32对引脚电平有绝对控制权
7.复用开漏输出
复用开漏输出在基本结构图中的表现主要为输出控制仅有复用功能输出连接
特点:引脚控制权转移到了片上外设。
8.复用推挽输出
复用推挽输出在基本结构图中的表现主要为输出控制仅有复用功能输出连接
特点:引脚控制权转移到了片上外设
三、GPIO寄存器描述
1.端口配置寄存器
端口配置寄存器主要作用为对低8位端口和高8位端口进行配置。
2.端口位设置/清除寄存器
作用就是字面意思,用&=和|=的方法对端口进行清除或设置。
总结
此篇文章重点放在了讲解8种输入输出模式的地方,在实际编程时端口如何配置是我一个发愁的点,所以我尽可能记录了各个模式的特征,至于寄存器方面只是一笔带过打算放在实践篇讲。