- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32 GPIO 使用方法
一、STM32 GPIO 简介
GPIO即通用I/O(输入/输出)端口,是STM32可控制的引脚。STM32芯片的
GPIO引脚与外部设备连接起来,可实现与外部通讯、控制外部硬件或者采集外部硬件
数据的功能。
以STM32F407 为例,其为F4 系列是基于Cortex-M4 内核 ,共有7 组IO。分别为
GPIOA~GPIOG ,每组IO 有16 个IO 口,共有112 个IO 口 通常称为 PAx、PBx、PCx、
PDx、PEx、PFx、PGx ,其中x 为0-15。
STM32 GPIO 的复用:
STM32 有很多的内置外设,这些外设的外部引脚都是与 GPIO 共用的。也就是说,
一个引脚可以有很多作用,但是默认为IO 口,如果想使用一个 GPIO 内置外设的功能
引脚,就需要GPIO 的复用,那么当这个 GPIO 作为内置外设使用的时候,就叫做复用。
比如说串口 就是GPIO 复用为串口。
二、GPIO的工作模式
1、4 种输入模式
(1 )GPIO_Mode_IN_FLOATING 浮空输入
(2 )GPIO_Mode_IPU 上拉输入
(3 )GPIO_Mode_IPD 下拉输入
(4 )GPIO_Mode_AIN 模拟输入
2、4 种输出模式
(1 )GPIO_Mode_Out_OD 开漏输出(带上拉或者下拉)
(2 )GPIO_Mode_AF_OD 复用开漏输出(带上拉或者下拉)
(3 )GPIO_Mode_Out_PP 推挽输出(带上拉或者下拉)
(4 )GPIO_Mode_AF_PP 复用推挽输出(带上拉或者下拉)
3、4 种最大输出速度
(1 )2MHZ (低速)
(2 )25MHZ (中速)
(3 )50MHZ (快速)
(4 )100MHZ (高速)
关于它们的定义,都在 stm32f4xx_gpio.h 中,都为结构体形式的定义
三、GPIO内部结构
a、保护二极管: IO 引脚上下两边两个二极管用于防止引脚外部过高、过低的电压输
入,当引脚电压高于VDD_FT 时,上方的二极管导通,当引脚电压低于VSS 时,下方的
二极管导通,防止不正常电压引入芯片导致芯片烧毁
b、上拉、下拉电阻:控制引脚默认状态的电压,开启上拉的时候引脚默认电压为高电
平,开启下拉的时候引脚默认电压为低电平
c、TTL 施密特触发器:基本原理是当输入电压高于正向阈值电压,输出为高;当输入
电压低于负向阈值电压,输出为低;IO 口信号经过触发器后,模拟信号转化为0 和1
的数字信号 也就是高低电平 并且是TTL 电平协议 这也是为什么STM32 是TTL 电平
协议的原因
d、 P-MOS 管和N-MOS 管:信号由P-MOS 管和N-MOS 管,依据两个MOS 管的工作方
式,使得GPIO 具有“推挽输出”和“开漏输出”的模式 P-MOS 管高电平导通,低电平关
闭,下方的N-MOS 低电平导通,高电平关闭
注:
VDD_FT 代表IO口,兼容3.3V和5V,如果没有标注“FT”,就代表着不兼容
5V (在芯片数据手册的引脚定义中,会看到有“I/O电平”一列 有 FT即为支持5V)
开漏输出和推挽输出的区别:
推挽输出:
可以输出强高低电平,连接数字器件,推挽结构一般是指两个三极管分别受两互补
号的控制,总是在一个三极管导通的时候另一个截止.
开漏输出:
可以输出强低电平,高电平得靠外部电阻拉高。输出端相当于三极管的集电极. 需要外
接上拉电阻,才能实现输出高电平 合于做电流型的驱动,其吸收电流的能力相对强
(一般20ma 以内) ;在使用任何一种开漏模式时,都需要接上拉电阻,否则只能输出低
电平
推挽输出电路:其中IN端输出高电平时下面的PNP三极管截止,而上面NPN三极管
导通,输出电平VS+ ;当IN端输出低电平时则恰恰相反,PNP三极管导通,输出和地
相连,为低电平
开漏输出电路:IN端输出低电平时,三极管导通,使输出接地,IN端输出高电平时,
三极管截止,所以引脚既不输出高电平,也不输出低电平,为高阻态。为正常使用时
必须接上拉电阻,
四、STM32中如何选用IO模式:
1、上拉输入、下拉输入可以用来检测外部信号;例如,按键等;
2、模拟输入——应用ADC模拟输入,或者低功耗下省电
3、开漏输出一般应用在I2C、SMBUS通讯等需要线与功能的总线电路中。
4、 推挽输出模式一般应用在输出电平为0
文档评论(0)