stm32学习:(寄存器2)GPIO总体说明

目录

GPIO的主要特点

GPIO的8种工作模式

GPIO电路结构

GPIO输出模式

输出流程

复用输出模式

GPIO输入模式

输入流程

模拟输入流程

GPIO相关的7个寄存器

GPIOx_CRL

GPIOx_CRH

GPIOx_IDR

GPIOx_ODR

GPIOx_BSRR

GPIOx_BRR

GPIOx_LCKR

 实例   三个灯流水灯

main.c 

Delay.h   

Delay.c   

Driver_LED.h 

Driver_LED.c


STM32有多组GPIO,比如我们使用的芯片:STM32F103ZET6共有7GPIO端口,他们分别是GPIOxxA-G),每组控制16个引脚,共有112GPIO引脚。具体一个其他STM32芯片有多少组GPIO,可以去查看他们的对应的数据手册

每个引脚的电平是0-3.3V,部分引脚最高可以兼容到5V。

GPIO的主要特点

  1. 不同型号,IO口的数量可能不一样
  2. 快速翻转。最快可以达到每2个时钟周期翻转一次
  3. 每个IO都可以作为外部中断
  4. 支持8种工作模式

GPIO的8种工作模式

GPIO端口的每个位(引脚)可以由软件分别配置成8种模式,当然对同一个引脚同一时间只能处于某一种模式中

  1. 输入浮空(Input floating)
  2. 输入上拉(Input pull-up)
  3. 输入下拉(Input-pull-down)
  4. 模拟输入(Analog)
  5. 通用开漏输出(Output open-drain)
  6. 通用推挽式输出(Output push-pull)
  7. 推挽式复用功能(Alternate function push-pull)
  8. 开漏复用功能(Alternate function open-drain)

每个I/O端口位可以自由编程,然而I/0端口寄存器必须按32位字节被访问

输出模式下可以控制端口输出高电平低电平,用于驱动LED,蜂鸣器等,如果是大功率器件(比如电机),还需要加上驱动器(小电流控制大电流)。

输入模式下可以读取端口的高低电平,用于读取外接按键,外接模拟信号的输入,ADC电压采集,模拟通信协议接受数据等。

GPIO电路结构

stm32学习:(寄存器2)GPIO总体说明_第1张图片

GPIO输出模式

输出流程

  1. 输出缓冲器被激活
  2. 推挽模式:输出寄存器上的 1 将激活P-MOS,输出高电平。0 将激活N-MOS,输出低电平。
  3. 开漏模式:PMOS永远关闭。 输出寄存器上的 0 激活N-MOS,而输出寄存器上的1 将端口置于高阻状态,所以外部必须要接上拉电阻。
  4. 施密特触发输入被激活。
  5. 弱上拉和下拉电阻被禁止。
  6. 出现在I/O脚上的数据在

你可能感兴趣的:(stm32,stm32,学习,嵌入式硬件)