stm32之GPIO电路介绍

文章目录

      • 1 GPIO介绍
      • 2 GPIO的工作模式
        • 2.1 浮空输入
        • 2.2 上拉输入
        • 2.3 下拉输入
        • 2.4 模拟输入
        • 2.5 开漏输出
        • 2.6 推挽输出
        • 2.7 复用开漏输出
        • 2.8 复用推挽输出
        • 2.9 其他
      • 3 应用方式
      • 4 常用库函数

1 GPIO介绍

请添加图片描述

  • 保护二极管:保护引脚,让引脚的电压位于正常的范围
  • 施密特触发器:将外部的模拟信号转换为数字信号
  • 上/下拉电阻:通过控制开关,可以设置输入引脚的默认电平状态
  • 输入数据寄存器:外部引脚电平转换为数字信号后保存到输入数据寄存器,然后由内部处理器读取
  • 输出数据寄存器:内部处理器将数据写入输出数据寄存器,然后通过输出控制电路输出到外部引脚
  • 位设置/清除寄存器:该寄存器用于修改输出数据寄存器中的某一位的值

2 GPIO的工作模式

2.1 浮空输入

请添加图片描述

数据流向:电压直接由GPIO引脚通过施密特触发器转化为高低电平后,将数据存储到输入数据寄存器中,微处理器就可以读取输入寄存器的数据。

特点:处于该模式的GPIO口未接外设,处于悬空状态时,引脚的电平是不确定的,此时读取输入寄存器的值是不确定的。

2.2 上拉输入

请添加图片描述

与浮空输入的区别在于,上拉输入模式下,上拉电阻上方的开关会闭合,I/O端口的电压就会Vdd小一点,也就是说,当引脚属于悬空状态时,引脚默认是高电平。

数据流向:与浮空输入相同。

特点:当输入引脚悬空时,输入是高电平。

2.3 下拉输入

请添加图片描述

与浮空输入的区别在于,上拉输入模式下,上拉电阻上方的开关会闭合,I/O端口的电压就会Vss大一点,也就是说,当引脚属于悬空状态时,引脚默认是低电平。

数据流向:与浮空输入相同。

特点:当输入引脚悬空时,输入是低电平。

2.4 模拟输入

请添加图片描述

浮空输入、上拉输入、下拉输入模式下,输入的都是数字信号,而模拟输入是直接将外部的模拟信号输入,因此,上拉电阻、下拉电阻、施密特触发器的开关都会断开,输入引脚的电平直接到内部。

数据流量:外部端口引脚直接连接到内部进行模拟输入。

特点:用于模拟信号的输入。

注意:只有ADC和DAC需要将IO端口配置为模拟通道,其他外设功能需要将IO配置为复用功能模式。

2.5 开漏输出

请添加图片描述

数据流向:处理器将数据写入输出数据寄存器,写入过程中可以通过位设置/清除寄存器(BSRR)修改单个位的数据,输出数据寄存器中的数据通过输出控制电路,然后通过N-MOS管到达外部输出引脚。同时,外部引脚的电平还可以通过浮空输入模式读取。

特点:当输出数据0时,N-MOS管导通,输出低电平;当输出数据1时,N-MOS管截止,输出引脚为高阻态(如果需要输出高电平,需要外接上拉电阻)。

2.6 推挽输出

请添加图片描述

特点:当输出数据0时,输出低电平;当输出1时,输出高电平。开关速度快,负载能力强,是最常使用的输出模式。

2.7 复用开漏输出

请添加图片描述

特点:与开漏输出的区别是,复用开漏输出是从片上外设输出。

2.8 复用推挽输出

请添加图片描述

特点:与推挽输出的区别是,复用推挽输出是从片上外设输出,串口通信中经常使用复用推挽输出。

2.9 其他

上电复位后,GPIO引脚默认为浮空状态,部分特殊引脚为特定状态。

3 应用方式

  • 普通GPIO输入:配置引脚为浮空输入、上拉输入、下拉输入,不使能该引脚的复用功能模块。
  • 普通GPIO输出:配置引脚为推挽输出、开漏输出,不使能该引脚的复用功能模块。
  • 模拟输入:配置引脚为模拟输入,不使能该引脚的复用功能模块。
  • 内置外设的输入:配置该引脚为浮空输入、上拉输入、下拉输入,使能该引脚的复用功能模块。
  • 内置外设的输出:配置该引脚为复用推挽输出、复用开漏输出,使能该引脚的复用功能模块。

注:常规使用GPIO时,输出通常使用推挽输出,输入则使用上拉输入或者下拉输入,具体需要根据外部器件的电路确定。

4 常用库函数

  • GPIO_Init:初始化
  • GPIO_ReadInputDataBit/GPIO_ReadInputData:读取某个口的输入电平,实际读取的就是输入数据寄存器的值
  • GPIO_ReadOutputDataBit/GPIO_ReadOutputData:读取某个口的输出电平,实际读取的就是输出数据寄存器的值
  • GPIO_SetBits:设置某个口输出高电平,实际操作的是位设置寄存器
  • GPIO_ResetBits:设置某个口输出低电平,实际操作菜单是位清除寄存器

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/756692.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Linux(1)】Linux的一些基本指令(补充上一篇)

思维导图 学习内容 通过上面的学习目标,我们可以列出要学习的内容: linux的一些指令:cd mkdir cp touch which rm cat alias 一些基本的概念:指令的概念,用户家目录是什么...... 一、Linux的一些指令 1.1 重新认识…

【机器学习】无监督学习算法之:自编码器

自编码器 1、引言2、自编码器2.1 定义2.2 原理2.3 实现方式2.4 算法公式2.5 代码示例 3、总结 1、引言 小屌丝:鱼哥, 今天可以讲一讲 自编码器嘛 小鱼:请说清楚,是什么编码器? 小屌丝:自编码器 小鱼&#…

除了大众点评,中国未来还会产生多少家这样的人工智能公司? - 学习Yelp公司的软件工程-评价和推荐系统

原文作者:Jason Sleight,ML(Machine Learning)平台集团技术负责人 翻译:数字化营销工兵 了解数据是Yelp成功的重要组成部分。为了将我们的消费者与当地优秀的企业联系起来,我们每天为各种任务提供数百万条建…

前端面试02(JS)

文章目录 前端面试02(JS)1、js的组成2、js内置对象3、操作数组的方法4、数据类型的检测方法5、闭包是什么6、前端内存泄漏7、事件委托8、基本数据类型和引用数据类型9、原型链10、JS如何实现继承 🎉写在最后 前端面试02(JS&#x…

百度交易中台之系统对账篇

作者 | 天空 导读 introduction 百度交易中台作为集团移动生态战略的基础设施,面向收银交易与清分结算场景,赋能业务、提供高效交易生态搭建。目前支持百度体系内多个产品线,主要包括:度小店、小程序、地图打车、文心一言等。本文…

从零开始搭建游戏服务器 第四节 MongoDB引入并实现注册登录

这里写目录标题 前言正文添加依赖安装MongoDB添加MongoDB相关配置创建MongoContext类尝试初始化DB连接实现注册功能测试注册功能实现登录逻辑测试登录流程 结语下节预告 前言 游戏服务器中, 很重要的一点就是如何保存玩家的游戏数据. 当一个服务端架构趋于稳定且功能全面, 开发…

qt-pdf-viewer-library 编译过程记录

1.qtpdfviewerinitializer.h 中 类模板问题需要修改为下面代码: https://github.com/develtar/qt-pdf-viewer-library 下载代码: 编译出现错误 修改代码,如下: 2.无法触发onViewerLoaded 事件,就是界面无法显示PDF文件 修改下面代码&#…

使用JNDIExploit-1.2-SNAPSHOT.jar复现log4j2详细流程

1.进入到改工具所在的目录,然后cmd打开命令行 查看一下帮助信息 -l 指定开启ladp服务的端口 -p 指定开启http服务的端口 -i 指定开启服务的ip,也就是攻击者的ip,也可以是黑客的公网服务器 因为这里的靶场是部署在kali当中的&#xf…

竞争优势:大型语言模型 (LLM) 如何重新定义业务策略

人工智能在内容创作中的突破 在当今快节奏的商业环境中,像 GPT-4 这样的大型语言模型 (LLM) 不再只是一种技术新颖性; 它们已成为重新定义跨行业业务战略的基石。 从增强客户服务到推动创新,法学硕士提供了企业不容忽视的竞争优势。 1. 加强…

设计模式中的UML基础

设计模式中的UML基础 目录 1、UML概述 2、UML的用途 3、UML的构成 4、UML图 5、UML类图 5.1、类的构成 5.2、类与类之间的关系 6、绘制UML图的软件工具 在讲解设计模式时,会使用到UML建模中的类图去讲解类与类之间的关系,所以这里需要给大家普…

【SpringSecurity】十三、基于Session实现授权认证

文章目录 1、基于session的认证2、Demosession实现认证session实现授权 1、基于session的认证 流程: 用户认证成功后,服务端生成用户数据保存在session中服务端返回给客户端session id (sid),被客户端存到自己的cookie中客户端下…

Android Studio实现内容丰富的安卓校园二手交易平台(带聊天功能)

获取源码请点击文章末尾QQ名片联系,源码不免费,尊重创作,尊重劳动 项目编号083 1.开发环境android stuido jdk1.8 eclipse mysql tomcat 2.功能介绍 安卓端: 1.注册登录 2.查看二手商品列表 3.发布二手商品 4.商品详情 5.聊天功能…

在微信小程序中或UniApp中自定义tabbar实现毛玻璃高斯模糊效果

backdrop-filter: blur(10px); 这一行代码表示将背景进行模糊处理,模糊程度为10像素。这会导致背景内容在这个元素后面呈现模糊效果。 background-color: rgb(255 255 255 / .32); 这一行代码表示设置元素的背景颜色为白色(RGB值为0, 0, 0)&a…

第四百一十二回

文章目录 1. 概念介绍2. 思路与方法2.1 实现思路2.2 实现方法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"给geolocator插件提交问题的结果"相关的内容,本章回中将介绍自定义标题栏.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我…

wireshark windows 抓包https

windows下 1.配置环境变量以生成ssl协商会话密钥日志记录 系统设置-》高级设置-》环境变量 新增环境变量 SSLKEYLOGFILE C:\Users\Public\Documents\SSLKEY\sslkey.log 打开公用共享文档创建SSLKEY文件夹用于后续系统存放协商密钥日志 2.配置Wireshark选项进行抓包 点击…

(一)Linux+Windows下安装ffmpeg

一丶前言 FFmpeg是一个开源的音视频处理工具集,由多个命令行工具组成。它可以在跨平台的环境中处理、转换、编辑和流媒体处理音视频文件。 FFmpeg支持多种常见的音视频格式和编解码器,可以对音视频文件进行编码、解码、转码、剪辑、合并等操作。它具有广…

最近火绒的explorer问题,电脑黑屏只有鼠标

由于安全限制,覆盖文件是行不通的,按照火绒官方给的方法试试,还是不行。主要是他最后一步写得有问题。恭喜火绒,成功的将我们所有客户的电脑安装的火绒卸载。 解决方案 1、CTRLSHIFTESC调出任务管理器; 2、左上角&am…

.net使用excel的cells对象没有value方法——学习.net的Excel工作表问题

$exception {"Public member Value on type Range not found."} System.MissingMemberException 代码准备运行问题解决1. 下载别的版本的.net框架2. 安装3. 运行 代码 Imports Excel Microsoft.office.Interop.Excel Public Class Form1Private Sub Button1_Click(…

万用表革新升级,WT588F02BP-14S语音芯片助力智能测量新体验v

万能表功能: 万能表是一款集多功能于一体的电子测量工具,能够精准测量电压、电流、电阻等参数,广泛应用于电气、电子、通信等领域。其操作简便、测量准确,是工程师们进行电路调试、故障排查的得力助手,为提升工作效率…

奥特曼剧透GPT-5,将在高级推理功能上实现重大进步

奥特曼:“GPT-5的能力提升幅度将超乎人们的想象...” 自 Claude 3 发布以来,外界对 GPT-5 的期待越来越强。毕竟Claude 3已经全面超越了 GPT-4,成为迄今为止最强大模型。 而且距离 GPT-4 发布已经过去了整整一年时间,2023年3月1…