IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> STM32F429入门(五):了解GPIO -> 正文阅读

[嵌入式]STM32F429入门(五):了解GPIO

(一)GPIO--general purpose input output

是通用输入输出端口的简称,简单来说就是软件可控制的引脚,STM32芯片的GPIO引脚与外部设备连接起来,从而实现与外部通讯、控制以及数据采集的功能。型号为 STM32F4IGT6 型号的芯 片有 GPIOA、GPIOB、GPIOC 至 GPIOI 共 9 组 GPIO,芯片一共 176 个引脚,其中 GPIO 就占了一大部分,所有的 GPIO 引脚都有基本的输入输出功能。

问题一:GPIO与引脚有什么区别?

  • 引脚可以分为以下的几类:电源、晶振IO、下载IO、BOOT IO、复位IO;这五部分IO组成的系统我们也叫做最小系统。

  • 以下的为GPIO

  • 专用器件接到专用的总线,比如I2C,SPI,SDIO,FSMC,DCMI这些总线的器件需要接到专用的IO

  • 普通的元器件接到GPIO,比如蜂鸣器,LED,按键等元器件用普通的GPIO

  • 如果还有剩下的IO,可根据项目需要引出或者不引出

(二)GPIO功能详解

保护二极管及上、下拉电阻的作用如下:

引脚的两保护个二级管可以防止引脚外部过高或过低的电压输入,当引脚电压高于 VDD_FT时,上方的二极管导通,当引脚电压低于 VSS时,下方的二极管导通,防止不正常 电压引入芯片导致芯片烧毁。尽管有这样的保护,并不意味着 STM32 的引脚能直接外接大 功率驱动器件,如直接驱动电机,强制驱动要么电机不转,要么导致芯片烧坏,必须要加 大功率及隔离电路驱动。

上拉、下拉电阻,从它的结构我们可以看出,通过上、下拉对应的开关配置,我们可 以控制引脚默认状态的电压,开启上拉的时候引脚电压为高电平,开启下拉的时候引脚电 压为低电平,这样可以消除引脚不定状态的影响。如引脚外部没有外接器件,或者外部的 器件不干扰该引脚电压时,STM32 的引脚都会有这个默认状态。

也可以设置“既不上拉也不下拉模式”,我们也把这种状态称为浮空模式,配置成这 个模式时,直接用电压表测量其引脚电压为 1 点几伏,这是个不确定值。所以一般来说我 们都会选择给引脚设置“上拉模式”或“下拉模式”使它有默认状态。

STM32 的内部上拉是“弱上拉”,即通过此上拉输出的电流是很弱的,如要求大电流 还是需要外部上拉。 通过“上拉/下拉寄存器 GPIOx_PUPDR 控制引脚的上、下拉以及浮空模式

其中:

00:无上拉或下拉

01:上拉

10:下拉

11:保留

?

?推挽输出:输入是0输出也是0,输入1输出也是1,两个MOS管轮流工作。在该结构中输入 高电平时,上方的 P-MOS 导通,下方的 N-MOS 关闭,对外输出高电平;而在该结构中输 入低电平时,N-MOS 管导通,P-MOS 关闭,对外输出低电平。当引脚高低电平切换时, 两个管子轮流导通,一个负责灌电流,一个负责拉电流,使其负载能力和开关速度都比普 通的方式有很大的提高。推挽输出的低电平为 0 伏,高电平为 3.3 伏。

?开漏输出:可以输出0和高阻态,如果想要使其输出高电平,则需加入上拉电路,所以此时它输出的高电平,完全取决于加入的VDD。而在开漏输出模式时,上方的 P-MOS 管完全不工作。如果我们控制输出为 0,低电平, 则 P-MOS 管关闭,N-MOS 管导通,使输出接地,若控制输出为 1 (它无法直接输出高电平) 时,则 P-MOS 管和 N-MOS 管都关闭,所以引脚既不输出高电平,也不输出低电平,为高阻态。为正常使用时必须接上拉电阻(可用 STM32 的内部上拉,但建议在 STM32 外部再接 一个上拉电阻),它具“线与”特性,也就是说,若有很多个开漏模式引脚连接到一起时,只有当所有引脚都输出高阻态,才由上拉电阻提供高电平,此高电平的电压为外部上拉电阻所接的电源的电压。若其中一个引脚为低电平,那线路就相当于短路接地,使得整条线路都为低电平,0 伏。

?

  • 推挽输出模式一般应用在输出电平为 0 和 3.3 伏而且需要高速切换开关状态的场合。 在 STM32 的应用中,除了必须用开漏模式的场合,我们都习惯使用推挽输出模式。

  • 开漏输出一般应用在 I2C、SMBUS 通讯等需要“线与”功能的总线电路中。除此之外, 还用在电平不匹配的场合,如需要输出 5 伏的高电平(芯片最多输出3.3V),就可以在外部接一个上拉电阻,上拉电源为 5 伏,并且把 GPIO 设置为开漏模式,当输出高阻态时,由上拉电阻和电源向外 输出 5 伏的电平。

  • 设置推挽/开漏,使用寄存器:输出类型寄存器 GPIOx_OTYPER

  • 如果要使输出信号和输入信号反相:(S8050高电平导通,低电平截止)

  • 如果要使输出信号和输入信号同相:

  • ?

  • 推挽输出总结:

  • 可以输出高低电平,用于连接数字器件,高电平由VDD决定,低电平由VSS决定。

  • 推挽结构指两个三极管受两路互补的信号控制,总是在一个导通的时候另外一个截止,优点开关效率效率高,电流大,驱动能力强。

  • 输出高电平时,电流输出到负载,叫灌电流,可以理解成推,输出低电平时,负载电流流向芯片,叫拉电流,即挽。

  • 开漏输出总结:

  • 只能输出低电平,丌能输出高电平。

  • 如果需要输出高电平,则需要外接上拉。

  • 开漏输出具有“线与功能”,一个为低,全部为低,多用于I2C和SMBUS总线。

(三)GPIO输出初始化顺序

  1. 确定GPIO是输入、通用输出、复用功能还是模拟输入。(模式寄存器:MODER)

?

?2.如果输出还要确定是推挽输出还是开漏输出(输出类型寄存器 :OTYPER)

?

?

?3.配置输出的速度(输出速度寄存器:OSPEEDR)

?

?4.输出的时候内部的上/下拉电阻要不要开启(上拉/下拉寄存器:PUPDR)

?

?

?

5.具体要输出的内容(置位复位寄存器:BSRR和数据输出寄存器:ODR)

?

?

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2021-09-02 11:32:57  更:2021-09-02 11:33:09 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:56:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码