(三)STM32基础——GPIO介绍

2023-10-26

目录

GPIO简介

GPIO基本结构

GPIO位结构

输入部分 

输出部分

推挽输出模式

开漏输出​编辑

开漏复用输出​编辑

八种输入输出模式 

浮空、上拉、下拉输入​编辑

模拟输入

开漏、推挽输出

复用开漏、复用推挽输出

GPIO寄存器


GPIO简介

        GPIO(General Purpose Input Output)叫做通用输入输出口,可配置为8种输入输出模式。

引脚电平:0V~3.3V,部分引脚可容忍5V。

        输出模式下可控制端口输出高低电平,用以驱动LED、控制蜂鸣器、模拟通信协议输出时序等

        输入模式下可读取端口的高低电平或电压,用于读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接收数据等

GPIO基本结构

        STM32F407ZG一共有7组IO口,每组IO口有16个IO,一共112个IO。命名为GPIOA,GPIOB,GPIOC......,GPIOG,然后每组IO口的命名是由0~15,一个16个,如GPIOA1等等。寄存器的每一位都对应一个引脚,其中输出寄存器写1,对应的引脚输出高电平,写0,就输出低电平,输入寄存器读取1,对应的端口目前是高电平,读取0,就是低电平。只有寄存器低16位对应有端口,高16位没有用到,而驱动器是用来增加驱动能力的。

GPIO位结构

输入部分 

        保护二极管的作用就是防止电流过高或者过低,当电流过高时,接VDD的保护二极管接通,高电流就不会通过电路了,当电流为负时,接VSS的二极管导通, 负压也不会通过电路析取电流,很好的起到了保护电路的效果。

        上面那两个开关就是上拉电阻和下拉电阻了,这两个电阻,通俗一点来讲的话,就是赋初值,当这两个开关都断开时,电路输入会处于一种浮空的状态,引脚的输入电平极易受到外界干扰而改变。而当选择上拉输入时,就是给电路默认赋一个高电平,相反,选择下拉输出时,就是给电路默认赋一个低电平。

        再过去就是一个施密特触发器(应该是翻译错误) ,作用就是对输入电压进行整形,主要原理就是,当电压高于某个值,输出才变为高电平,而当电压低于某个值之后,电压立马变为低电平,这样可以有效的修整电压,防止数据抖动。

 模拟输入就是直接连接到ADC上的

另一个是复用功能输入 ,需要连接到其他需要读取端口的外设上

输出部分

首先来看一下位设置/清除寄存器,主要功能就是单独控制输出寄存器的某一位数据

        之后是这两个MOS管,就是一种电子开关 ,通过控制MOS管,可以将IO口接到VDD或者VSS。

接下来介绍一下三种输出模式 

推挽输出模式

         在推挽输出模式下,PMOS和NMOS均有效,数据寄存器为1时,上管导通,下管断开,输出直接接到VDD,就是输出高电平,数据寄存器为0时,上管断开,下管导通,输出直接接到VSS,就是输出低电平。

开漏输出

         在开漏输出模式下,PMOS是无效的,只有NMOS在工作,数据为1时,下管断开,也就是输出断开;数据为0时,下管导通,输出直接接到VSS,就是输出低电平。想输出高电平,就只能外界电源。

开漏复用输出

 就是直接接在复用功能输出这,与复用输出类似

八种输入输出模式 

模式名称

性质

特征

浮空输入

数字输入

可读取引脚电平,若引脚悬空,则电平不确定

上拉输入

数字输入

可读取引脚电平,内部连接上拉电阻,悬空时默认高电平

下拉输入

数字输入

可读取引脚电平,内部连接下拉电阻,悬空时默认低电平

模拟输入

模拟输入

GPIO无效,引脚直接接入内部ADC

开漏输出

数字输出

可输出引脚电平,高电平为高阻态,低电平接VSS

推挽输出

数字输出

可输出引脚电平,高电平接VDD,低电平接VSS

复用开漏输出

数字输出

由片上外设控制,高电平为高阻态,低电平接VSS

复用推挽输出

数字输出

由片上外设控制,高电平接VDD,低电平接VSS

浮空、上拉、下拉输入

模拟输入

开漏、推挽输出

复用开漏、复用推挽输出

要注意的是,输出的时候,输入端也是开启的,而输入的时候,输出端是关闭的。

GPIO寄存器

接下来,我们来介绍一下GPIO的寄存器

 配置IO方向

端口输出类型寄存器(GPIOx_OTYPER)

每一位控制一个IO,当数值为1时,是输出开漏,数值为0时,是输出推挽。 

 

 每两位控制一个IO口,用来控制端口输出速度。

端口上拉/下拉寄存器(GPIOx_PUPDR)

每两位控制一个IO口,每两位设置不同的值,就对应不同的模式,具体如上图所示。

 

记录输入输出端的数据 

        注意,写0时不对其执行任何操作,而不是把其置为0。主要就是修改某几位而不改变其他的,BSy 置1,相应端口为1,BRy 置1,相应端口为0,也就是置位和复位。

        好的,到此处,GPIO的硬件原理部分我们已经全部介绍完毕,之后,我们下篇笔记来介绍一下如何编写程序来控制GPIO。


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

(三)STM32基础——GPIO介绍 的相关文章

  • protobuf 中数据编码规则

    背景 protobuf 是一种跨平台的序列化结构数据的方法 可用于网络数据传输及存储 protobuf 在生成的 C 代码中为 proto 文件中的每个 message 生成了对应的 C 类 并提供了数据成员的读写方法 本文对 protob
  • 以太网知识-GMII / RGMII接口

    今天和海翎光电的小编一起分析MII RMII SMII 以及GMII RGMII SGMII接口的信号定义 及相关知识 同时小编也对RJ 45接口进行了总结 分析了在10 100模式下和1000M模式下的连接方法 GMII 接口分析 GMI
  • 避免跨域的CDN部署方案

    我们的一个项目采用动静分离的部署方式 服务接口在自己的服务器上 静态资源保存在OSS 通过CDN访问 不过这样有时会有跨域问题 本文总结解决的办法 原来的做法 原本的做法 服务接口部署在自己的服务器上 通过域名api xxx com访问 不
  • 添加序号_Excel——合并单元格添加序号

    点击上方关注我们获取更多 在工作中 为了数据便于查看 经常需要将内容相同的单元格进行合并 在进行了批量合并单元格后 如何给合并单元格添加序号成为又一难点 今天就来和大家分享一下在EXCEL中如何给合并单元格添加序号 以下表数据 城市销售数据
  • UVA-806 空间结构 题解答案代码 算法竞赛入门经典第二版

    GitHub jzplp aoapc UVA Answer 算法竞赛入门经典 例题和习题答案 刘汝佳 第二版 一道遍历四叉树的题目 在遍历的同时还要记住路径 做一些额外的操作 题目本身并不难 但是格式要求较多 比如输出路径时12个就换行 不

随机推荐

  • 恶意代码检测理论(静态与动态分析基础)

    什么是恶意代码 恶意代码 malicious code 又称为恶意软件 malicious software Malware 是能够在计算机系统中进行非授权操作的代码 恶意代码类型 1 蠕虫或计算机病毒 可以自我复制和感染其他计算机的恶意代
  • Linux逆向 - Mirai-上

    Mirai Mirai 变种 资料 源码 Mirai源码 xd0ol1 Mirai 源码分析 https paper seebug org 142 绿盟 MIRAI源码分析报告 http blog nsfocus net mirai sou
  • C#中结构体排序方法(Array.sort() + ICompare)

    感觉C 比C 麻烦许多 资料也少 找了半天竟然没有找到一个能用的结构体排序 这是待排序的结构体 public struct la public int id public int sb 首先 C 需要调用一个空间 类似头文件 using S
  • 自学移动端(APP)自动化测试

    国庆已经过去了 新的一周已经开始了 各地疫情又开始出现复发了 我们能做的就是做好个人防护 去哪报备 到哪扫码亮码 主动做核酸 随时做好家里存储至少一周的食物 拒绝过度防疫 拒绝过度恐慌 拒绝过度焦虑 有工作的最起码还有钱能到手 没有工作的可
  • 万字长文深度剖析AIGC技术!(网络架构&自监督)

    作者 派派星 编辑 CVHub 点击下方卡片 关注 自动驾驶之心 公众号 ADAS巨卷干货 即可获取 点击进入 自动驾驶之心 全栈算法 技术交流群 前景回顾 Welcome to back 在 万字长文带你解读AIGC入门篇 一文中 我们详
  • 计算机网络生活应用,浅谈计算机网络在生活中的应用

    摘要 进入21世纪科技高速发展 特别是计算机网络的进一步发展 计算机的应用更为普遍 计算机网络的应用已经渗透到社会的各个领域 正在日益改变着传统的工作 学习和生活的方式 推动着社会的科技发展 资源的共享 通信 这两种计算机网络最基本的功能在
  • elementUI的表格多选功能之规定禁止选择

    elementUI的el table表格多选功能之禁用多选 在进行表格的多选的时候我们会碰到那种 只允许部分内容可以被选择 不符合的要禁用多选框 这个时候就要用到elementUI el table的selectable 所以我们可以这样写
  • mysql导入sql文件、数据库时报错ERROR: ASCII '\0' appeared in the statement

    window环境下mysql导入sql文件时报错 ERROR ASCII 0 appeared in the statement 错误原因 文件编码不正确 解决办法 下载UltraEdia对文件进行转码 如果是使用powershell导出的
  • 计算机网络笔记整理2——物理层

    点此链接可跳转到 计算机网络笔记整理 目录索引页 参考书籍 计算机网络 第八版 谢希仁编著 文章目录 点此链接可跳转到 计算机网络笔记整理 目录索引页 物理层的基本概念 物理层接口的基本特性 数据通信的基础知识 信道的极限容量 信道能够通过
  • AODV协议概述

    AODV是由Nokia研究中心的Charles E Perkins和加利福尼亚大学Santa Barbara的Elizabeth M Belding Roryer以及Cincinnati大学Samir R Das等共同开发 已经被 IETF
  • JDBC总结

    JDBC 规范 Java DataBase Connectivity 标题 JDK 提供 Java链接数据库的规范 采用JDBC访问数据库的基本步骤 A 载入JDBC驱动程序 B 定义连接URL C 建立连接 D 创建Statement对象
  • 光纤工程的接续、施工与测试技术规范及要点

    1 光纤接续 1 光纤接续 光纤接续应遵循的原则是 芯数相等时 要同束管内的对应色光纤对接 芯数不同时 按顺序先接芯数大的 再接芯数小的 2 光纤接续的方法有 熔接 活动连接 机械连接三种 在工程中大都采用熔接法 采用这种熔接方法的接点损耗
  • 【Unity研究】进程、线程、对象池的关系

    目录 简要概括 名词解释 实例 进程 线程 对象池 实际使用 对象池实际操作 含代码 建立主线程以外的线程方法 在主线程中运行的生命周期 在副线程中运行的生命周期 简要概括 正在运行的Unity游戏就可以看做一个进程的实例 线程是进程内的执
  • 一种信息系统免疫安全防护架构

    摘 要 随着网络的快速发展 各类社会活动的信息化日益普及 但是网络安全威胁也更加复杂多变 使得信息系统处于安全威胁风险极高的环境中 严重威胁信息的共享和获取 针对核心信息系统的安全防护 提出了一种信息系统免疫安全防护架构 针对信息系统高可用
  • c语言 水仙花数

    水仙花数是指一个N位正整数 N 3 它的每个位上的数字的N次幂之和等于它本身 本题要求编写程序 计算所有N位水仙花数 输入格式 输入在一行中给出一个正整数N 3 N 7 输出格式 按递增顺序输出所有N位水仙花数 每个数字占一行 输入样例 3
  • mysql数据库设置远程连接权限,执行grant all privileges on *.* to 'root'@'%' identified by '密码' with grant optio报错

    mysql数据库设置远程连接权限 执行grant all privileges on to root identified by 密码 with grant optio报错 ERROR 1558 HY000 Column count of
  • 华为OD机试 - 字符个数统计(C++ & Java & JS & Python)

    目录 描述 输入描述 输出描述 示例1 示例2 C python Java 描述 编写一个函数 计算字符
  • linux AIO (异步IO) 那点事儿

    在高性能的服务器编程中 IO 模型理所当然的是重中之重 需要谨慎选型的 对于网络套接字 我们可以采用epoll 的方式来轮询 尽管epoll也有一些缺陷 但总体来说还是很高效的 尤其来大量套接字的场景下 但对于Regular File 来说
  • 机器学习中的方差与偏差

    方差与偏差的定义 方差 不同的训练数据集训练出的模型输出值之间的差异 偏差 用所有可能的训练数据集训练出的所有模型的输出的平均值与真实模型的输出值之间的差异 方差与偏差的数学公式 首先 以回归为例 模型的期望预测指针对不同数据集D 模型对样
  • (三)STM32基础——GPIO介绍

    目录 GPIO简介 GPIO基本结构 GPIO位结构 输入部分 输出部分 推挽输出模式 开漏输出 编辑 开漏复用输出 编辑 八种输入输出模式 浮空 上拉 下拉输入 编辑 模拟输入 开漏 推挽输出 复用开漏 复用推挽输出 GPIO寄存器 GP