STM32学习笔记——GPIO介绍及配置

仅供个人学习使用

STM32 的每个 IO 端口都有 7 个寄存器来控制。分别是:

  • 配置模式的 2 个 32 位的端口配置寄存器 CRL 和 CRH
  • 2 个 32 位的数据寄存器 IDR 和 ODR
  • 1 个 32 位的置位/复位寄存器BSRR
  • 1个 16 位的复位寄存器 BRR
  • 1 个 32 位的锁存寄存器 LCKR

CRH 和 CRL

在固件库开发中,操作寄存器 CRH 和 CRL 来配置 IO 口的模式和速度是通过 GPIO 初始化函数完成:

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

这个函数有两个参数,第一个参数是用来指定 GPIO,取值范围为 GPIOA~GPIOG。第二个参数为初始化参数结构体指针,结构体类型为 GPIO_InitTypeDef。其定义如下:

typedef struct
{ uint16_t GPIO_Pin; 
GPIOSpeed_TypeDef GPIO_Speed; 
GPIOMode_TypeDef GPIO_Mode; 
}GPIO_InitTypeDef;

结构体 GPIO_InitStructure 的第一个成员变量 GPIO_Pin 用来设置是要初始化哪个或者哪些 IO 口;第二个成员变量 GPIO_Mode 是用来设置对应 IO 端口的输出输入模式,有八个可选值,在固件库中是通过枚举类型定义:

typedef enum 
{ GPIO_Mode_AIN = 0x0, //模拟输入 
GPIO_M
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值