STM32_H7_GPIO

声明:本篇博客并不是一个详细的教程,只是对本篇涉及到的知识点进行简单整理,罗列出其中疑难、易引起误解的地方。若想对该功能进行全方位的了解,建议直接去看手册。本篇博客分为功能介绍、cubemx界面介绍、hal库函数功能说明、例程Demo四部分。

STM32_H7_GPIO

 

功能介绍


-摘抄手册

简介

每个通用 I/O 端口包括 :

  • 4 32 位配置寄存器 (GPIOx_MODERGPIOx_OTYPERGPIOx_OSPEEDR GPIOx_PUPDR
  • 2 32 位数据寄存器(GPIOx_IDR GPIOx_ODR
  • 1 32 位置位/复位寄存器 (GPIOx_BSRR)

此外,所有 GPIO 都包括 :

  • 1 32 位锁定寄存器 (GPIOx_LCKR)
  • 2 32 位复用功能选择寄存器(GPIOx_AFRH GPIOx_AFRL)。

主要特性

  • 从 输出数据寄存器 (GPIOx_ODR) 或外设(复用功能输出)输出数据
  • 将数据输入到 输入数据寄存器 (GPIOx_IDR) 或外设(复用功能输入)
  • 可为每个 I/O 选择不同的速度
  • 置位和复位寄存器 (GPIOx_BSRR),对 GPIOx_ODR 具有按位写权限
  • 锁定机制 (GPIOx_LCKR),可冻结 I/O 端口配置
  • 快速翻转,每次翻转最快只需要两个时钟周期
  • 引脚复用非常灵活,允许将 I/O 引脚用作 GPIO 或多种外设功能中的一种
  • 可通过软件将通用 I/O (GPIO) 端口的各个端口 位分别配置为多种模式:

GPIO框图

框图说明

只需要对上图中的黄色框进行不同的配置,就可将通用 I/O (GPIO) 端口的各个端口位分别配置为多种模式:

  • 输入浮空
  • 输入上拉
  • 输入下拉
  • 模拟输入
  • 开漏输出
  • 推挽输出
  • 复用功能推挽
  • 复用功能开漏

具体如何配置,在手册(RM0433)第11.3.9、11.3.10、11.3.12、11.3.13小节里有详细的描述,这里不再展开说明。

补充描述

上电复位后引脚状态

在复位期间及复位刚刚完成后,大多数 I/O 端口被配置为输入浮空模式。但以下调试功能相关端口例外:
 
  • PA15JTDI 处于上拉状态
  • PA14:JTCK/SWCLK 处于下拉状态
  • PA13:JTMS/SWDAT 处于上拉状态
  • PB4:NJTRST 处于上拉状态
  • PB3:JTDO 处于浮空状态

输入数据寄存器每个 AHB 时钟周期对 I/O 引脚上的数据进行一次采样,在将IO配置为输出时,仍然可以通过输入数据寄存器读取IO电平

I/O 引脚复用功能复用器和映射

要在外设复用功能配置下使用 I/O,用户必须按照以下步骤操作:

  • 在 GPIOx_AFRL 或 GPIOx_AFRH 寄存器中,将 I/O 连接到所需的 AFx
  • 通过 GPIOx_OTYPER、GPIOx_PUPDR GPIOx_OSPEEDER 寄存器,分别选择类型、上拉/下拉以及输出速度。
  • 在 GPIOx_MODER 寄存器中将所需 I/O 配置为复用功能。

对于 ADC DAC等外设,请查阅手册后进行操作。

GPIO寄存器

请查阅手册(RM0433)第11.4节。
 
 

STM32CubeMX


STM32CubeMX关于GPIO的配置比较简单,截图说明如下(以输出模式为例):

 

HAL/LL库函数功能说明


控制GPIO相关的HAL库函数不多,只有8个,列表如下:

函数功能
HAL_GPIO_Init初始化GPIO
HAL_GPIO_DeInit用默认参数初始化GPIO
HAL_GPIO_ReadPin获取指定引脚电平
HAL_GPIO_WritePin设置指定引脚电平
HAL_GPIO_TogglePin翻转指定的GPIO引脚电平
HAL_GPIO_LockPin锁定GPIO引脚电平
HAL_GPIO_EXTI_IRQHandler外部中断服务函数
HAL_GPIO_EXTI_Callback中断回调函数

详细功能去阅读库函数说明文档。例如:STM32H753xx_User_Manual.chm,可在官网下载。

DEMO


所有DEMO均提供KeilSTM32CubeIDE两个版本,且同时在github和码云进行备份。

DEMO列表github地址码云地址
GPIO操作

Keil 5.29

STM32CubeIDE 1.0.2

Keil 5.29

STM32CubeIDE 1.0.2

外部IO中断

Keil 5.29

STM32CubeIDE 1.0.2

Keil 5.29

STM32CubeIDE 1.0.2

...  
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值