STM32学习笔记(4)——GPIO输出操作

  • STM32外设基本知识

GPIO:GPIO(英语:General-purpose input/output),通用型之输入输出的简称

  • STM32F407ZET6引脚分组

STM32F407ZET6(144引脚)

    -  一共有7组IO口 (PA、PB、PC、PD、PE、PF、PG)

    -  每组IO口有16个IO引脚

    -  一共16X7=112个IO引脚

外加2个PH0和PH1(用于连接晶振)

一共114个IO口引脚

STM32学习笔记(4)——GPIO输出操作

 

  • 引脚寄存器

 每组通用 I/O 端口包括(共十个,下面x代表:A B C D E F G 组):

4 个 32 位配置寄存器(GPIOx_MODER、GPIOx_OTYPER、GPIOx_OSPEEDR 和 GPIOx_PUPDR)。

2 个 32 位数据寄存器(GPIOx_IDR 和 GPIOx_ODR)。

1 个 32 位置位/复位寄存器 (GPIOx_BSRR)、

1 个 32 位锁定寄存器(GPIOx_LCKR)

2 个 32 位复用功能选择寄存器(GPIOx_AFRH 和 GPIOx_AFRL)。

 

 

寄存器实际物理地址 = 基地址 + 偏移地址

 

  • GPIO工作方式

STM32学习笔记(4)——GPIO输出操作

GPIO工作方式

4种输入模式(数据从引脚到芯片内部)

浮空输入(无上下拉电阻)

上拉输入

下拉输入

模拟输入(模拟信号)

4种输出模式

开漏输出(带上拉或者下拉)

开漏复用功能(带上拉或者下拉)

推挽式输出(带上拉或者下拉)

推挽是复用功能(带上拉或者下拉)

4种最大输出速度

2MHZ

25MHZ

50MHZ

100MHZ

 

开漏:引脚只能输出0,如果想输出1,那外部要接上拉电阻。

推挽:引脚可输出0 或者 输出1(常用)

 

上拉电阻:将一个不确定的信号,通过一个电阻与电源VCC相连,固定在高电平。

作用:上拉是对器件注入电流;灌电流;当一个接有上拉电阻的IO端口设置为输入状态时,它的常态为高电平。

下拉电阻:将一个不确定的信号,通过一个电阻与地GND相连,固定在低电平。

作用:下拉是从器件输出电流;拉电流。当一个接有下拉电阻的IO端口设置为输入状态时,它的常态为低电平。

上拉电阻和下拉电阻二者共同的作用是:避免电压的“悬浮”,造成电路的不稳定。

 

  • LED开发

1.​​​​​​​理解LED电路原理

 

LE0连接在PF9。

PF9输出0(低电平),灯亮

PF9输出1(高电平),灯灭

STM32学习笔记(4)——GPIO输出操作

 

2.打开GPIOF组时钟,(STM32所有外设时钟都是关闭的)

//使能GPIO F组时钟

RCC_AHB1ENR |= (0x01<<5);

 

3、设置GPIO F9引脚模式、上/下拉、输出类型、速度。

GPIOx_MODER

STM32学习笔记(4)——GPIO输出操作

GPIOx_PUPDR

STM32学习笔记(4)——GPIO输出操作

STM32学习笔记(4)——GPIO输出操作

GPIOx_OTYPER

STM32学习笔记(4)——GPIO输出操作

STM32学习笔记(4)——GPIO输出操作

GPIOx_OSPEEDR

STM32学习笔记(4)——GPIO输出操作