STM32F4——GPIO基本应用及复用

IO基本应用

一、IO基本结构:

针对STM32F407有7组IO,分别为GPIOA~GPIOG,每组IO有16个IO口,则有112个IO口。其中IO口的基本结构如下:

二、工作方式:

STM32F4工作模式有8种,其中4中输入模式,4种输出模式,分别为:输入浮空、输入上拉、输入下拉、模拟模式、开漏输出、开漏复用输出、推挽输出、推挽复用输出。

1、输入模式:

在输入浮空模式下,电路既不上拉也不下拉,通过施密特触发器送到输入数据寄存器在送入到CPU。输入上拉和下拉模式分别是在电路中经过上拉和下拉后通过施密特触发器送入的CPU,模拟模式下,施密特触发器关闭后信号直接通过模拟通道至片上外设。

2、输出模式:

开漏输出模式下,CPU发送输入直接或间接的控制输出数据寄存器,通过输出控制电路,当信号为1时,N—MOS管是关闭的,所以IO电平就是受上下拉电路的控制,当信号为0时,N—MOS管导通输出就是下拉低电平;推挽输出模式下,信号为1时,P-MOS管导通,N-MOS管截止,输出就是上拉高电平,当信号为0时,P-MOS管截止,N-MOS管导通,输出就是下拉低电平;对于开漏复用和推挽复用模式与开漏和推挽的不同之处就是在于信号的开源不同,开漏复用和推挽复用的信号来源是片上的外设模块。

三、相关寄存器

每一个通用的IO端口都包括4个32位的配置寄存器(GPIOx_MODER、GPIOx_OTYPER、PIOx_OSPEEDR和GPIOx_PUPDR),2个32位的数据寄存器(GPIOx_IDR和GPIOx_ODR),1个32位置位/复位寄存器(GPIOx_BSRR),1个32位锁定寄存器(GPIOx_LCKR)和2个32位复用功能选择寄存器(GPIOx_AFRL)。下面对其进行介绍。

1、工作模式配置:1、端口模式(GPIOx_MODER):用来配置端口的模式为输入、输出、复用和模拟模式。2、端口类型(GPIOx_OTYPER):用来配置寄存器的模式为输出推挽还是输出开漏。3、端口速度(PIOx_OSPEEDR):用来配置端口的信息传输速率。4、端口上下拉(GPIOx_PUPDR):用来配置端口的无上下拉、上拉、下拉和保留模式。

2、电平配置:1、输入数据(GPIOx_IDR):用到其低16位,分别对应该组IO口的一个电平状态。2、输出数据(GPIOx_ODR):与输入数据寄存器相似的功能。3、置位和复位(GPIOx_BSRR):与前两个不同的是置位和复位寄存器用到了32位,低16为设置为1时,用于置1相应位,高16位设置为1时,用于置0相应位,而低16位和高16位设置为0时不影响原值。

3、复用功能配置:下面做相应说明。

IO复用

一、复用背景:

由于考虑到IO口的有限,为了节省IO资源,同时为了更好的协调IO之间的工作,所以有必要在适当的时候给IO口赋予不同的功能,一个IO口在不同的时候可以承担不同的工作,这就是IO的复用功能。

二、复用原理:

每一个IO口都会接有一个选择器,这个选择器经过相应寄存器(GPIOx_AFRH和GPIOx_AFRL)的配置之后就可以做不同的功能的应用,这个寄存器就是GPIOx_AFRH和GPIOx_AFRL。

三、寄存器配置:

每一组IO口都有一个AFRL和一个AFRH寄存器,他们都是32位的寄存器,其中每4位配置一个IO口的功能,则对应的GPIOx_AFRL就用来配置第0-7个IO口,GPIOx_AFRH就用来配置第8-15个IO口。每4位配置一个IO口,则4位数据的相关取值就会有对应的相应功能。如此一来就做好了相关配置。

综述:

这些相关的配置过程会用到相应的函数和相应变量,熟练使用相关的函数,同时对函数的功能了解后才会应用的更加得心应手,同时也可以写自己的一些相关函数来进行操作,当然也可以直接操作相关的寄存器。



版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-10 16:26:57

STM32F4——GPIO基本应用及复用的相关文章

bcm53344 gpio驱动分析

/********************************************************************************* * 1.查看代码是在vim下,使用ctags进行的.也可以使用SourceInsight * 2.为方便查找,使用“------->>>"加数字/字母进行标记,表示后面会进行详解. * 使用“<<<------"加数字/字母,表示详解或相同的地方, * 查看时找到相同的标记进行阅读 *

一步步点亮LED(三)---GPIO概念和相关数据手册查阅

GPIO(General Purpose Input/Output)是通用输入输出,是s5pv210芯片上的引脚,但不是所有的引脚都可以用作GPIO.每个GPIO都是功能复用的,一个GPIO可以被配置成不同的功能. s5pv210 中的GPIO是以端口为单位来管理的,每个端口中含有不同数量的GPIO.根据s5pv210芯片的数据手册可以知道,s5pv210中包括了 34 个端口,共237个GPIO引脚.前面提到的led的负极连上的 GPJ0_3 ,其中 GPJ0 就是端口名称,后面的 3 代表着

GPIO和外部中断/时间控制器(EXTI)

2.1          GPIO的8种工作模式 GPIO工作图如下: 4种输入模式 结构图的上半部分分为输入模式结构, 分为上拉模式,下拉模式,浮空模式和模拟输入模式. 上/下拉模式:通过设置配置寄存器(CRL,CRH)来控制1和2开关,于是得到GPIO的上拉输入模式(GPIO_Mode_IPU)和下拉输入模式(GPIO_Mode_IPD). 浮空输入模式(GPIO_Mode_IN_FLOATING):没有接上下拉电阻,经由TTL施密特触发器输入. 配置成这个模式直接用电压表测量其引脚电压为1

嵌入式02 STM32 实验01 端口复用和重映射

内设与外设: 端口复用和端口重映射都需要了解内设和外设,那么什么是内设?什么是外设? 内设:单片机内部集成的功能一般包括:串口模块.SPI模块(Serial Peripheral Interface  串行外设接口).I2C模块(Philips公司开发的一种简单.双向二线制同步串行总线).A/D模块(模数转换器).PWM模块(Pulse Width Modulation  脉冲宽度调制).CAN模块(Controller Area Network  控制器局域网络).EEPROM(Electri

实验2串口实验

0目标 1STM32 串口简介 2硬件设计 3软件设计 4下载验证 0.目标 利用串口1 不停的打印信息到电脑上,同时接收从串口发过来的数据,把发送过来的数据直接送回给电脑. 1.STM32 串口简介 串口设置的一般步骤可以总结为如下几个步骤:1) 串口时钟使能, GPIO 时钟使能2) 串口复位3) GPIO 端口模式设置4) 串口参数初始化5) 开启中断并且初始化 NVIC(如果需要开启中断才需要这个步骤)6) 使能串口7) 编写中断处理函数注:对于复用功能的 IO,我们首先要使能GPIO 

STM32学习笔记——USART串口(向原子哥和火哥学习)

一.USART简介 通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换.USART利用分数波特率发生器提供宽范围的波特率选择. STM32 的串口资源相当丰富的,功能也相当强劲.STM32F103ZET6 最多可提供 5 路串口,有分数波特率发生器,支持同步单向通信和半双工单线通信,支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作.它还允许多处理器通信.

AM335x(TQ335x)学习笔记——LCD驱动移植

TI的LCD控制器驱动是非常完善的,共通的地方已经由驱动封装好了,与按键一样,我们可以通过DTS配置完成LCD的显示.下面,我们来讨论下使用DTS方式配置内核完成LCD驱动的思路. (1)初步分析 由于TQ335x使用的芯片是AM335x,故仍然可以参考am335x-evm.dts.当然,am335x-evmsk.dts.am335x-beagbone.dts都可以.本文以am335x-evm.dts为例.大体上浏览下DTS文件,可以发现两个醒目的节点:一个是panel,一个是backlight

嵌入式开发-迅为IMX6开发板硬件详情介绍

迅为-I.MX6开发板 Cortex-A9四核I.MX6Q,主频1G,2G内存,16G存储,支持4G全网通,GPS WIFI蓝牙模块,千兆以太网,摄像头,SATA等接口,多屏异显,双屏同显 2.POWER电源接口 电源输入为 12V/2A+,给底板供电. 原理图部分如下图所示. 电源接口位置如下图所示. 3.SWITCH电源开关 轻触电源开关可以控制开发板电源通断. 原理图部分如下图所示. 如下图所示. 4. 7位拨码开关 7 位拨码开关控制 iMX 启动模式. 原理图部分如下图所示. 如下图所

[stm32] USART USART1收发功能工程

>_<!功能:PC端发送一个特定的字符:0x0d 0x0a,单片机则返回一句话,如图: >_<!知识: 1.复用功能I/O和调试配置(AFIO)  为了优化外设数目,可以把一些复用功能重新映射到其他引脚上.设置复用重映射和调试I/O配置寄存器(AFIO_MAPR)(参见0节)实现引脚的重新映射.这时,复用功能不再映射到它们的原始分配上. 2.嵌套向量中断控制器(NVIC) l 43 个可屏蔽中断通道(不包含16 个Cortex-M3 的中断线):  l 16 个可编程的优先等级: