【STM32F429学习记录之GPIO寄存器】

系列文章目录

提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加
例如:第一章 Python 机器学习入门之pandas的使用


参考STM32F4xx中文参考手册


一、GPIO简介

每个通用 I/O 端口包括 4 个 32 位配置寄存器(GPIOx_MODERGPIOx_OTYPER
GPIOx_OSPEEDRGPIOx_PUPDR)、2 个 32 位数据寄存器(GPIOx_IDR
GPIOx_ODR)、1 个 32 位置位/复位寄存器 (GPIOx_BSRR)、1 个 32 位锁定寄存器
(GPIOx_LCKR) 和 2 个 32 位复用功能选择寄存器(GPIOx_AFRHGPIOx_AFRL)。


二、GPIO主要特性

●受控 I/O 多达 16 个
● 输出状态:推挽或开漏 + 上拉/下拉
● 从输出数据寄存器 (GPIOx_ODR) 或外设(复用功能输出)输出数据
● 可为每个 I/O 选择不同的速度
● 输入状态:浮空、上拉/下拉、模拟
● 将数据输入到输入数据寄存器 (GPIOx_IDR) 或外设(复用功能输入)
● 置位和复位寄存器 (GPIOx_BSRR),对 GPIOx_ODR 具有按位写权限
● 锁定机制 (GPIOx_LCKR),可冻结 I/O 配置
● 模拟功能
● 复用功能输入/输出选择寄存器(一个 I/O 最多可具有 16 个复用功能)
● 快速翻转,每次翻转最快只需要两个时钟周期
● 引脚复用非常灵活,允许将 I/O 引脚用作 GPIO 或多种外设功能中的一种


三、GPIO 8种功能模式

● 输入浮空
● 输入上拉
● 输入下拉
● 模拟功能
● 具有上拉或下拉功能的开漏输出
● 具有上拉或下拉功能的推挽输出
● 具有上拉或下拉功能的复用功能推挽
● 具有上拉或下拉功能的复用功能开漏


四、GPIO寄存器

配置寄存器
GPIOx_MODER 寄存器用于选择 I/O 方向(输入、输出、AF、模拟)
GPIOx_OTYPER 选择输出类型(推挽或开漏)
GPIOx_OSPEEDR 选择速度 (无论采用哪种 I/O 方向,都会直接将 I/O 速度引 脚连接到相应的 GPIOx_OSPEEDR 寄存器位)
GPIOx_PUPDR 无论采用哪种 I/O 方向,GPIOx_PUPDR都用于选择上拉/下拉。
数据寄存器
GPIOx_ODR 用于存储待输出数据,可对其进行读/写访问。
GPIOx_IDR 通过 I/O 输入的数据存储到输入数据寄存器GPIOx_IDR中,它是一个只读寄存器。
数据位操作
GPIOx_BSRR 32 位寄存器,允许应用程序在输出数据寄存器(GPIOx_ODR) 中对各个单独的数据位执行置位和复位操作。
在 GPIOx_BSRR 中向任何位写入 0 都不会对 GPIOx_ODR 中的对应位产生任何影响。如果在 GPIOx_BSRR 中同时尝试对某个位执行置位和清零操作,则置位操作优先。
当对GPIOx_BSRR低16位置1时相应的ODR置1当对高16位置1时清零相应的ODR位
锁定寄存器
GPIOx_LCKR GPIOx_LCKR 寄存器,可以冻结 GPIO 控制寄存器。冻结的寄存
器包括 GPIOx_MODER、GPIOx_OTYPER、GPIOx_OSPEEDR、GPIOx_PUPDR、
GPIOx_AFRL 和 GPIOx_AFRH。
复用寄存器
GPIOx_AFRLGPIOx_AFRH 复用功能寄存器在每个 GPIO 上复用多个可
用的外设功能。这样一来,应用程序可为每个 I/O 选择任何一个可用功能。由于 AF 选择信
号由复用功能输入和复用功能输出共用,所以只需为每个 I/O 的复用功能输入/输出选择一个
通道即可。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值