STM32——关于GPIO口的输出方式和输入方式

news2025/1/8 5:31:23

在STM32中,我们会要使用程序来对I/O口进行控制,当我们使用I/O口时,我们就需要知道在程序中我们需要这个I/O口来实现什么功能,是输入还是输出。

 

1、使用输出模式

I/O口常用的输出方式有推挽输出和开漏输出。

(1)推挽输出(GPIO_Mode_Out_PP):可以输出高、低电平,连接数字器件。

(2)开漏输出(GPIO_Mode_Out_OD):输出端相当于三极管的集电极,要得到高电平状态,需要外接上拉电阻。它适合于做电流型的驱动,其吸收电流的能力相对较强,一般可达到20mA。

在开漏输出模式下,P-MOS是无效的,只有N-MOS在工作,数据寄存器为1时,下管断开,这时输出相当于断开,也就是高阻模式。数据寄存器为0时,下管导通,输出直接接到Vss,也就是输出低电平。这种模式下,只有低电平具有驱动能力,高电平是没有驱动能力的。

2、使用输入模式

(1)输入浮空(GPIO_Mode_IN_FLOATING):信号进入芯片内部后,即没有经过上拉电阻也没有经过下拉电阻,只经由施密特触发器输入。如果被配置成该模式,其端口的电平不确定。由于其输入阻抗比较大,所以一般把这种模式用于标准的通信协议。

(2)输入上拉(GPIO_Mode_IPU):上拉输入,就是信号进入芯片后被内部的一个上拉电阻上拉,再经过施密特触发器转换成0、1信号,因此,复位后该引脚电平为高电平。

(3)输入下拉(GPIO_Mode_IPD):下拉输入,就是信号进入芯片后被内部的一个下拉电阻下拉,再经过施密特触发器转换成0、1信号,因此,复位后该引脚电平为低电平。

(4)模拟输入(GPIO_Mode_AIN):信号进入芯片后不经过上拉电阻或者下拉电阻,也不经过施密特触发器,经由另一线路把电压信号传送到偏上相应的外设模块。例如,通常是ADC模块,然后由ADC采集电压信号。因此,可以将这种方式理解为模拟输入的信号是未经处理的信号,是“原汁原味”的信号。

 

  •  序号1,这里是I/O引脚,在这里接了两个保护二极管,这里是对输入电压进行限幅的,Vdd接3.3V,Vss接0V。
  • 序号2,这里连接了一个上拉电阻和下拉电阻,上拉电阻至Vdd,下拉电阻至Vss,该电路可以通过程序进行配置,当上面导通,下面断开,即为上拉输入模式。与之相反的就是下拉输入模式。如果两个电阻都断开,那么就是浮空输入模式,电压值不确定。在这里的作用就是为了给输入提供一个默认的输入电平。讲过施密特触发器整形的波形可以直接写入输入数据寄存器,在用程序读取输入数据寄存器对于某一位的数据,即可知端口的输入电平了
  • 图中为TTL肖特基触发器,实际为施密特触发器(施密特触发器的作用是对输入电压进行整形的)如果输入电压大于某一阈值,输出则会瞬间升为高电平,如果输入电压小于某一阈值,输出则会瞬间降为低电平。
  • 序号3为模拟输入,这个是连接到ADC上的,因为ADC需要接收模拟量。
  • 序号4为复用功能输入,这个是连接到其他需要读取端口的外设上的,如串口的输入引脚等,这根线接收的是数字量,故在施密特触发器后面。

3、复用输出

(1)复用开漏输出、复用推挽输出:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用I/O口使用)。

 

 

 

 

 

 

 

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

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

相关文章

回归预测 | MATLAB实现WOA-CNN-GRU鲸鱼算法优化卷积门控循环单元多输入单输出回归预测

回归预测 | MATLAB实现WOA-CNN-GRU鲸鱼算法优化卷积门控循环单元多输入单输出回归预测 目录 回归预测 | MATLAB实现WOA-CNN-GRU鲸鱼算法优化卷积门控循环单元多输入单输出回归预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 回归预测 | MATLAB实现WOA-CNN-GR…

驱动day5

驱动程序 #include <linux/init.h> #include <linux/module.h> #include<linux/fs.h> #include<linux/device.h> #include<linux/cdev.h> #include<linux/slab.h> #include<linux/uaccess.h> #include<linux/of.h> #include&…

11.4.2:DotImage SDK 基于web的扫描功能 cRACK

包含&#xff1a; DDotImage Document ImagingPDF Reader w/ Text ExtractionWingScan with eVRSOffice ReaderDotPDFBarcode Reading and WritingOCR Engines DotImage SDK WingScan 亮点&#xff0c;&#xff0c;WEB WingScan附带了一个简单的HTML5/JavaScript文档查看器…

Postgresql优化器如何使用列统计信息?

对pg_statistic表的查询都是走syscache的&#xff0c;要找到所有使用列统计信息地方&#xff0c;遍历系统表索引即可 enum SysCacheIdentifier {...STATEXTDATASTXOID,STATEXTNAMENSP,STATEXTOID,STATRELATTINH,... }下面是最常用的STATRELATTINH索引场景&#xff0c;即 Sear…

小奇猫物语之产品经理篇(2)

小奇猫物语之产品经理篇&#xff08;2&#xff09; 喵喵提示&#xff1a;小奇的产品经理篇&#xff08;2&#xff09;来咯&#xff0c;预告一下&#xff0c;前面几篇主要是讲产品经理的思维模式以及怎样去从一个学生思维转变成一个能带领一个项目的产品经理思维&#xff0c;所…

DolphinDB 与通联数据达成合作,构建快捷高效的一站式行情数据服务

在此前发布的多篇教程中&#xff0c;我们为大家展示了 DolphinDB 如何为因子投研、实时计算等业务场景加速&#xff0c;并进行了手把手教学&#xff0c;比如&#xff1a; 对接极速行情&#xff0c;真的很简单…… 又比如&#xff1a; 自己动手&#xff0c;搭一套行情回放系统…

Vue 路由跳转

文章目录 前言路由基础子路由路由传参query 传参 path静态传参动态传参 params 传参 name 编程式路由利用JS实现路由跳转 router 路由守卫 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; views里面放的是视图子组件&#xff08;首页、商家列表、商品列…

MySQL(九):MySQL语法-高级

MySQL语法-高级 LIMITLIKEASCREATE UNIQUE INDEX、DROP INDEXCREATE VIEW、DROP VIEWGROUP BYHAVINGMYSQL - JOININNER JOIN、JOINLEFT JOIN、LEFT OUTER JOINRIGHT JOIN、RIGHT OUTER JOINLEFT JOIN ... WHERE ...RIIGHT JOIN ... WHERE ... TRUNCATE TABLEINSERT INTO 表1 (列…

信创电子档案管理单机版系统之档案利用的功能介绍

专久智能信创电子档案管理单机版系统的档案利用&#xff0c;包括对电子档案的网上利用和对档案实体的借阅两种方式&#xff0c;用户对档案的利用都是通过 WEB 方式的档案网站实现的。 用户可以根据系统赋予的权限对电子档案目录进行检索查询&#xff0c;找到所需的档案目录&…

图像分类——图像增强方法

目录 常用的图像增强方法tf.image进行图像增强翻转和裁剪颜色变换 使用ImageDataGenerator(进行图像增强) 常用的图像增强方法 tf.image进行图像增强 离线实现 import tensorflow as tf import matplotlib.pyplot as plt import numpy as npcatplt.imread(./cat.jpg) plt.ims…

【后端面经-架构】RabbitMQ简介

【后端面经-架构】RabbitMQ简介 1. MQ介绍2. RabbitMQ2.1 简介2.2 架构&#xff1a;组件解释2.3 特点2.4 优缺点 面试模拟参考资料 1. MQ介绍 MQ&#xff08;Message Queue&#xff09;用于在应用程序之间相互通信&#xff0c;在消息中发送数据进行通信&#xff0c;而不需要特…

数据结构(王卓版)——算法分析

一个好算法如何衡量&#xff1a; 分析算法时间复杂度的方法&#xff1a; 复杂算法的计算规则&#xff1a; 空间复杂度

【深度学习】基于BRET的高级主题检测

一、说明 使用BERT&#xff0c;UMAP和HDBSCAN捕获文档主题&#xff0c;紧随最先进的BERTopic架构&#xff08;transformer编码器&#xff09;。 主题检测是一项 NLP 任务&#xff0c;旨在从文本文档语料库中提取全局“主题”。例如&#xff0c;如果正在查看书籍描述的数据集&am…

fatal: unable to access ‘http://xxxx‘: Empty reply from server

当你遇到 “fatal: unable to access ‘http://xxxx’: Empty reply from server” 的错误信息时&#xff0c;通常表示 Git 客户端无法连接到指定的服务器或仓库。 以下是一些可能导致该错误的原因以及一些排除故障的步骤&#xff1a; 错误的 URL&#xff1a;确保你提供的 URL…

linux 服务器之间传输文件的方式

情景&#xff1a;有时迁移项目&#xff0c;一般人就想到需要在服务器下载到win本地电脑上面&#xff0c;再上传到目的服务器&#xff0c;这样若是文件大&#xff0c;下载的速度都足够让你歇一天了。遇到这问题&#xff0c;怎么解决呢&#xff1f; 方法1&#xff1a;scp 【优点…

数据结构---手撕图解双向循环链表

文章目录 写在前面双向循环链表的构造布局带有哨兵位的布局 链表的构建链表的销毁链表的输出链表的尾插链表的尾删链表的头插链表的头删链表的查找链表的插入链表的删除 写在前面 在前面学完单链表后&#xff0c;我们思考这样一个问题&#xff0c;单链表和顺序表比起来&#x…

RK3588平台开发系列讲解(Camera篇)V4L2 视频采集步骤

文章目录 一、V4L2 视频采集步骤1.1、查询设备能力1.2、设置采集参数1.3、请求帧缓冲1.4、映射帧缓冲1.5、启动视频采集1.6、停止视频采集沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇章主要讲解V4L2 视频采集步骤。 一、V4L2 视频采集步骤 V4L2 视频采集的常用…

28. 在O(1)时间删除链表结点

链接&#xff1a; 链接 题目&#xff1a; 给定单向链表的一个节点指针&#xff0c;定义一个函数在O(1)时间删除该结点。 假设链表一定存在&#xff0c;并且该节点一定不是尾节点。 数据范围 链表长度 [1,500][1,500]。 样例 输入&#xff1a;链表 1->4->6->8删掉节点&…

指针和数组笔试题解析(最详细解析,没有之一)

指针和数组笔试题解析&#xff08;最详细解析&#xff0c;没有之一&#xff09; 前言1. 一维数组和指针相关笔试题2. 字符数组和指针相关笔试题2.1 题型一&#xff1a;2.2 题型二&#xff1a;2.3 题型三&#xff1a;2.4 题型四&#xff1a; 3. 指针和字符串相关面试题3.1 题型一…

华为云CodeArts Check代码检查插件3大版本使用指南

华为云CodeArts Check是自主研发的代码检查服务。为用户提供代码风格、通用质量与网络安全风险等丰富的检查能力&#xff0c;提供全面质量报告、便捷的问题闭环处理帮助企业有效管控代码质量&#xff0c;助力企业成功。 本插件致力于守护开发人员代码质量&#xff0c;成为开发…