彻底搞懂8种GPIO输入输出模式

发布者:HarmonyInLife最新更新时间:2024-06-28 来源: elecfans关键字:GPIO  输入输出模式  高低电平 手机看文章 扫描二维码
随时随地手机看文章

一、STM32的4种输入模式

输入浮空:此模式下该引脚的高低电平由外部决定,用于读取外部电平状态。

输入上拉:此模式下该引脚浮空时电平状态为高电平,如果外部对该引脚施加一个低电平,会改变该引脚状态为低电平。

输入下拉:此模式下该引脚浮空时电平状态为低电平,如果外部对该引脚施加一个高电平,会改变该引脚状态为高电平。

模拟输入:此模式下可以输入模拟信号,对齐进行采样转化为数字信号


二、STM32的4种输出模式

开漏输出:输出端相当于三极管的集电极,要得到高电平状态需要上拉电阻才行,适合于做电流型的驱动,其吸收电流的能力相对强(一般20ma以内)。

一般来说,开漏是用来连接不同电平的器件,匹配电平用的,因为开漏引脚不连接外部的上拉电阻时,只能输出低电平,如果需要同时具备输出高电平的功能,则需要接上拉电阻,很好的一个优点是通过改变上拉电源的电压,便可以改变传输电平。

比如:加上上拉电阻就可以提供TTL/CMOS电平输出等(上拉电阻的阻值决定了逻辑电平转换的沿的速度。阻值越大,速度越低功耗越小,所以负载电阻的选择要兼顾功耗和速度)。

推挽输出:可以输出高/低电平,连接数字器件。推挽结构一般是指两个三极管分别受两互补信号的控制,总是在一个三极管导通的时候另一个截止。

高低电平由IC的电源低定。推挽电路是两个参数相同的三极管或MOSFET,以推挽方式存在于电路中,各负责正负半周的波形放大任务,电路工作时,两只对称的功率开关管每次只有一个导通,所以导通损耗小、效率高。

输出既可以向负载灌电流,也可以从负载抽取电流推拉式输出级既提高电路的负载能力,又提高开关速度。

开漏复用功能:可以理解为GPIO口被用作第二功能时的配置情况(即并非作为通用IO口使用)。

推挽复用功能:同开漏复用一样。


三、IO模式的宏名

GPIO_Mode_AIN:模拟输入

GPIO_Mode_IN_FLOATING:浮空输入

GPIO_Mode_IPD:下拉输入

GPIO_Mode_IPU:上拉输入

GPIO_Mode_Out_OD:开漏输出

GPIO_Mode_Out_PP:推挽输出

GPIO_Mode_AF_OD:复用开漏输出

GPIO_Mode_AF_PP:复用推挽输出


四、相关寄存器介绍

GPIOx_CRL:GPIO0~7的模式设置和速率设置

GPIOx_CRH:GPIO7~15的模式设置和速率设置

GPIOx_IDR:GPIO输入数据寄存器,做输入用的

GPIOx_ODR:GPIO输出数据寄存器,做输出的

GPIOx_BSRR:GPIO复位/置位寄存器,原子操作

GPIOx_BRR:GPIO复位寄存器


关键字:GPIO  输入输出模式  高低电平 引用地址:彻底搞懂8种GPIO输入输出模式

上一篇:语音识别技术原理及实用系统设计汇总
下一篇:如何去实现一种串口命令控制台呢?

推荐阅读最新更新时间:2026-03-25 10:42

STM32 GPIO输出高低电平转换速率测试
最近对STM32 GPIO的输出端高低电平变化速率产生兴趣,于是用我所知道的控制GPIO的不同方法做了测试。 单片机CPU:STM32F103ZET6 软件平台:kEIL MDK 逻辑分析仪:金沙滩 LA2016 从图中看出,最快的是 GPIOA - ODR = 0x1; GPIOA - ODR = 0x0; 和 PA0 = 0x01;PA0 = 0x00; 和 GPIOA - BSRR = 0x01; GPIOA - BRR = 0x01; 转换周期是220ns,4.55Mhz 最慢的是 *PAO0 = !*PAO0 ; 和 PA0 =!PA0; 取反操作浪费不少
[单片机]
STM32 <font color='red'>GPIO</font>输出<font color='red'>高低</font><font color='red'>电平</font>转换速率测试
MSP432学习-04-GPIO输入输出省电模式及中断的应用
一、相关库函数功能解析 看门狗 WDT_A_holdTimer(); //关闭看门狗 输出 uint_fast8_t selectedPort:选择端口 uint_fast16_t selectedPins:选择引脚 GPIO_setAsOutputPin(uint_fast8_t selectedPort, uint_fast16_t selectedPins); //设置为输出 GPIO_setOutputLowOnPin(uint_fast8_t selectedPort, uint_fast16_t selectedPins); //设置输出为低电平 GPIO_setOutputHighOnPin(uint_fas
[单片机]
STM32的8种GPIO输入输出模式深入详解
输入模式 -输入浮空(GPIO_Mode_IN_FLOATING) -输入上拉(GPIO_Mode_IPU) -输入下拉(GPIO_Mode_IPD) -模拟输入(GPIO_Mode_AIN) 输出模式 -开漏输出(GPIO_Mode_Out_OD) -开漏复用功能(GPIO_Mode_AF_OD) -推挽式输出(GPIO_Mode_Out_PP) -推挽式复用功能(GPIO_Mode_AF_PP) 输入浮空:浮空就是逻辑器件与引脚即不接高电平,也不接低电平。由于逻辑器件的内部结构,当它输入引脚悬空时, 相当于该引脚接了高电平。一般实际运用时,引脚不建议悬
[单片机]
STM32的8种<font color='red'>GPIO</font><font color='red'>输入输出</font><font color='red'>模式</font>深入详解
LPC11C14单片机为例分析IO无法输出高低电平的处理办法
  很多人在使用单片机时,总是会面临一个问题,就是在单机片的运用过程中老是输出高低电平,这是为什么呢?下面小编就以LPC11C14单片机为例来为你解说单片机IO为什么无法输出高低电平的原因。   在用LPC11C14单片机,该单片机是32cortex-M0系列的,带有片上CAN资源,既可以使用寄存器编程,也可以使用库函数(CMSIS)来编程应用方便。其下载方式有两种:   SW方式;   ISP方式;   对于LQF48封装而言,调试口分别为:   29脚:SWCLK;   39脚:SWDIO;   这个两个引脚可以复用,在项目设计中到了29脚,将该引脚用作了GPIO输出脚,在用库函数调试的过程中发现时钟无法控制输出高
[单片机]
LPC11C14单片机为例分析IO无法输出<font color='red'>高低</font><font color='red'>电平</font>的处理办法
STM32 I/O口不能正常输出高低电平问题的解决方案
I/O口不能正常输出一般都是端口被复用了造成的,除了检查程序中是否有把端口复用的程序外,还应注意:有些端口在单片机上电时默认就是复用的,如与JTAG相关的PA13,PA14,PA15,PB3,PB4引脚,禁用JTAG或SWD可以释放其中的一些引脚,见表格: 具体做法: RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO ,ENABLE);//重映射需要先使能AFIO时钟 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//只关闭JTAG而保留SWD
[单片机]
STM32F103程序设计-5-控制引脚高低电平的实现
控制引脚高低电平的实现 开发板上可以通过控制引脚高低电平的实现功能的模块:蜂鸣器、LED灯。 一.GPIO操作步骤: 1.GPIO对应时钟打开 2.设置GPIO的引脚、速度、输出模式等参数 3.引脚输出0或1 给PB5置1的方法的方法有两种: GPIOB - BSRR = 0x0020; GPIOB - BSRR |= ( 1 5);(优点,只修改某一位) 给PB5清0的方法的方法有两种: GPIOB - BSRR = 0x0000; GPIOB - BSRR &= ~( 1 5); (优点,只修改某一位) 二.熟悉相关寄存器及寄存器版实现输出电平的控制: 1.GPIOB在
[单片机]
STM32端口输入输出模式配置
STM32的IO口模式配置 根据数据手册提供的信息,stm32的io口一共有八种模式,他们分别是: 四种输入模式 上拉输入: 通过内部的上拉电阻将一个不确定的信号通过一个电阻拉到高电平。 下拉输入: 把电压拉到GND。与上拉原理相似。 浮空输入: 引脚内部什么都不接,处于浮空模式下,电平状态是不确定的。外部信号输入什么,IO口就是什么状态。 模拟输入: 接收到的是连续的模拟信号,一般用于AD转换。 四种输出模式 推挽输出: 可以输出高低电平,连接数字器件。在stm32中推挽电路由两个MOS管组成:输出高电平时P-MOS管导通,引脚联通VDD(3.3v)。输出低电平时N-MOS导通,引脚联通GND。**该方式既提高电路的负
[单片机]
STM32八种输入输出模式详解
最近在看数据手册的时候,发现在Cortex-M3里,对于GPIO的配置种类有8种之多: (1)GPIO_Mode_AIN 模拟输入 (2)GPIO_Mode_IN_FLOATING 浮空输入 (3)GPIO_Mode_IPD 下拉输入 (4)GPIO_Mode_IPU 上拉输入 (5)GPIO_Mode_Out_OD 开漏输出 (6)GPIO_Mode_Out_PP 推挽输出 (7)GPIO_Mode_AF_OD 复用开漏输出 (8)GPIO_Mode_AF_PP 复用推挽输出 对于刚入门的新手,我想这几个概念是必须得搞清楚的,平时接触的最多的也就是推挽输出、开漏输出、上拉输入这三种,但一直未曾对这些做过归纳。因此,在这
[单片机]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved