文章目录
GPIO的基本概念及寄存器介绍
GPIO接口简介
通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。因此GPIO的作用和功能是非常重要的。
GPIO功能复用
GPIO的基本功能是普通的I/O,而STM32有自己的各个功能模块,这些内置外设的外部引脚是与标准GPIO复用的,当作为这些模块的功能引脚时 ,就叫复用。
GPIO寄存器介绍
STM32F051-GPIO常用寄存器
- 4个32位配置寄存器
GPIOx_MODER 、GPIOx_OTYPER、GPIOx_OSPEEDR、GPIOx_PUPDR - 2个32位数据寄存器
GPIOx_IDR、GPIOx_ODR - 1个32位 置位/复位寄存器
GPIOx_BSRR - 2个32位复用功能配置寄存器
GPIOx_AFRH、GPIOx_AFRL
每一组GPIO端口都有一套上述的寄存器去配置他的功能。
GPIO寄存器MODER
GPIO端口模式寄存器(GPIOx_MODER),共32位,每两位为一组分别对应0-15引脚。偏移地址0x00
GPIO寄存器OTYPER
GPIO端口输出类型寄存器(GPIOx_OTYPER)偏移地址0x04
简单理解什么是推挽输出和开漏输出,推挽输出时可以输出高电平和低电平,开漏输出只能输出低电平。
GPIO寄存器OSPEEDR
GPIO 口输出速度寄存器 (GPIOx_OSPEEDR),偏移地址0x08。
GPIO寄存器PUPDR
GPIO 口上拉 / 下拉寄存器 (GPIOx_PUPDR) ,偏移地址: 0x0C
GPIO寄存器IDR
GPIO 端口输入数据寄存器 (GPIOx_IDR) ,偏移地址: 0x10。
GPIO寄存器ODR
GPIO 端口输出数据寄存器 (GPIOx_ODR) 偏移地址: 0x14。
GPIO寄存器BSRR
GPIO 端口置位 / 复位寄存器 (GPIOx_BSRR),偏移地址: 0x18。
GPIO寄存器AFRL
GPIO 复用功能低位寄存器 (GPIOx_AFRL), 偏移地址: 0x20。
GPIO寄存器AFRH
GPIO 复用功能高位寄存器 (GPIOx_AFRH),偏移地址: 0x24
点灯
硬件原理图分析
编程步骤分析
使能GPIO的时钟
AHB 外部时钟使能寄存器 (RCC_AHBENR),偏移地址 : 0x14