STM32的八种GPIO模式

发布者:快乐奇迹最新更新时间:2021-12-15 来源: eefocus关键字:STM32  GPIO模式  IO模式 手机看文章 扫描二维码
随时随地手机看文章

STM32有八种IO口模式,分别是:模拟输入、浮空输入、上拉输入、下拉输入、开漏输出、推挽输出、复用开漏输出和复用推挽输出。

1、模拟输入


GPIO_Mode_AIN模拟输入,即关闭施密特触发器,将电压信号传送到片上外设模块(不接上下拉电阻)。


2、浮空输入


GPIO_Mode_IN_FLOATING浮空输入。浮空输入状态下,IO的电平状态是不确定的,完全由外部输入决定,如果在该引脚悬空的情况下,读取该端口的电平是不确定的。


3、上下拉输入


GPIO_Mode_IPD下拉输入,GPIO_Mode_IPU上拉输入。一般来讲,上拉电阻为1K-10K,电阻越小,驱动能力越强。


电阻的作用:防止输入端悬空,减少外部电流对芯片的干扰,限流,增加高电平输出时的驱动能力。


当GPIO引脚无输入时,上拉输入在默认状态下为高电平,下拉输入在默认状态下为低电平。


4、开漏输出


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


5、推挽输出


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


6、复用开漏推挽输出


GPIO_Mode_AF_OD复用开漏输出,GPIO_Mode_AF_PP复用推挽输出。可以理解为GPIO口被用作第二功能时的配置情况,即并非作为通用IO口使用。


IO模式选用


浮空输入:可以做KEY识别,RX1。


上拉输入:IO内部上拉电阻输入。


下拉输入:IO内部下拉电阻输入。


模拟输入:应用ADC模拟输入,或者低功耗下省电。


开漏输出:IO输出0接GND,IO输出1,悬空,需要外接上拉电阻,才能实现输出高电平。当输出为1时,IO口的状态由上拉电阻拉高电平,但由于是开漏输出模式,这样IO口也就可以由外部电路改变为低电平或不变。可以读IO输入电平变化,实现C51的IO双向功能。

推挽输出:IO输出0-接GND,IO输出1 -接VCC,读输入值是未知的。


复用推挽输出:片内外设功能,I2C的SCL、SDA。


复用开漏输出:片内外设功能,TX1,MOSI,MISO.SCK.SS。


引脚配置方式


通常有5种方式使用某个引脚功能,它们的配置方式如下:


1、作为普通GPIO输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时不要使能该引脚对应的所有复用功能模块。


2、作为普通GPIO输出:根据需要配置该引脚为推挽输出或开漏输出,同时不要使能该引脚对应的所有复用功能模块。


3、作为普通模拟输入:配置该引脚为模拟输入模式,同时不要使能该引脚对应的所有复用功能模块。


4、作为内置外设的输入:根据需要配置该引脚为浮空输入、带弱上拉输入或带弱下拉输入,同时使能该引脚对应的某个复用功能模块。


5、作为内置外设的输出:根据需要配置该引脚为复用推挽输出或复用开漏输出,同时使能该引脚对应的所有复用功能模块。

关键字:STM32  GPIO模式  IO模式 引用地址:STM32的八种GPIO模式

上一篇:单片机的四种烧写方式
下一篇:STM32 NRF24L01实现无线传输

推荐阅读最新更新时间:2024-11-13 19:11

STM32串口通信USART(二)---DMA方式
刚接触到DMA的时候,一头雾水,只知道方便、快捷,但不知道该怎么使用,后来弄明白原理之后就轻松了很多,但理解的还不是很透,所以希望把自己的理解写出来,和大家分享一下! 形象的说,DMA就像一个快递中转站,负责把数据从始发地搬到目的地,只要他负责的仓库有货,他就开始搬运,没货就等着,除非你把它关了。就像机器人搬东西一样,首先要告诉它从哪搬,搬到哪?东西有多大?需要搬几趟?需要搬运的东西是不是都在一起?搬完后是不是扔在那就行了,还是要放好? 到芯片里,数据就是货物,把数据从一个地方移到另一个地方。你只要告诉它怎么移到就行了,就像控制一个机器人一样。并不是多有的外设都能有机会使用DMA通道,而且,一条通道上被外设使用后,通道上的其他外设
[单片机]
STM32学习笔记(7):USART串口的使用
1.串口的基本概念 在STM32的参考手册中,串口被描述成通用同步异步收发器(USART),它提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。 USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。还可以使用DMA方式,实现高速数据通信。 USART通过3个引脚与其他设备连接在一起,任何USART双向通信至少需要2个引脚:接受数据输入(RX)和发送数据输出(TX)。 RX:接受数据串行输入。通过
[单片机]
STM32自学笔记EXTI(外部中断)寄存器
外部中断通用I/O映像 中断处理函数分配 EXTI寄存器一览 以下图片全部摘自STM32中文参考手册 中断屏蔽寄存器(EXTI_IMR) 往对应的位写1就是开启中断,写0就是关闭中断 例如开放来自线0上的中断请求 EXTI- IMR|=1 0;//开放来自线0上的中断请求 事件屏蔽寄存器(EXTI_EMR) 参考**中断屏蔽寄存器(EXTI_IMR)**的操作 上升沿触发选择寄存器(EXTI_RTSR) 设置对应的外部中断触发事件为上升沿 上升沿就是电平从0到1 例如允许输入线0上的上升沿触发 EXTI- RTSR|=1 0;//允许输入线0上的上升沿触发 下降沿触发选择寄存器(
[单片机]
<font color='red'>STM32</font>自学笔记EXTI(外部中断)寄存器
STM32中的结构体是如何组织同类寄存器的
#define PERIPH_BASE ((u32)0x40000000)//端口地址 ?xml:namespace prefix = o ns = urn:schemas-microsoft-com:office:office / #define APB2PERIPH_BASE (PERIPH_BASE + 0x10000)//端口地址 #define GPIOA_BASE (APB2PERIPH_BASE + 0x0800)//端口地址 #define GPIOA ((GPIO_TypeDef *) GPIOA_BASE)// typedef unsigned long u32; typedef volatil
[单片机]
STM32】HAL库 STM32CubeMX教程十四---SPI
前言: 本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 在我们的HAL库中,对硬件SPI函数做了很好的集成,使得之前SPI几百行代码,在HAL库中,只需要寥寥几行就可以完成 那么这篇文章将带你去感受下它的优异之处,这些优异的函数,也正是HAL库的优点所在 本文 1首先讲解SPI工作原理及W25QX芯片原理, 2基于CubeMx创建工程 3 对HAL库SPI函数进行讲解,4例程详解 所用工具: 1、芯片: STM32F103ZET6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32F1xx/STM32F4xxHAL库 5、SPI: 使用硬
[单片机]
【<font color='red'>STM32</font>】HAL库 STM32CubeMX教程十四---SPI
STM32 软件触发 DAC
/* DAC.c 用于DAC的初始化和配置 */ #include includes.h void DAC_Config(void); void DAC_Task(void* prg); void DAC_Task(void* prg) { DAC_SetChannel1Data(DAC_Align_12b_R,1028); //设置数据右对齐,转换值设置为1028 DAC_SoftwareTriggerCmd(DAC_Channel_1,ENABLE); //软件触发通道1 开始转换 DAC_SetChannel2Data(DAC_Align_12b_R,2047)
[单片机]
STM32 学习十 Flash下载与调试
一、启动模式 三、FLASH下载与调试 选择调试模式: 1.RAM调试:0x20000000 2.FLASH调试:0x8000000 CM3的Flash烧写次数:1000次 安装Setup_JLinkARM_V408h 连接j-Link-ARM到电脑。我使用虚拟机做开发,这时候需要把USB连接到虚拟机上。 把开发板连接到jLink并上电。 下载操作: 1.新增下载模式 2.设置Options 这里注意与芯片参数要一致。 下载: 下载结束,操作成功。
[单片机]
<font color='red'>STM32</font> 学习十 Flash下载与调试
Stm32固件库中关于NART的误解
Stm32 固件库中关于NART的误解 禁止自动重传模式(NART) 该模式主要用于满足CAN标准中,时间触发通信选项的需求。通过对CAN_MCR寄存器的NART位置’1’,来让硬件工作在该模式。 在该模式下,发送操作只会执行一次。如果发送操作失败了,不管是由于仲裁丢失或出错,硬件都不会再自动发送该报文。 网上有很多can的程序在注释的时候有这样的错误: 将 CAN_InitStructure.CAN_NART=DISABLE理解成为失能自动重传 但是NART的英文全称应该是no automatic retransmission,也就是没有自动重传。 那么CAN_InitStructure.CAN_NART=DISABLE的
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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