Cortex-M0芯片GPIO详解

本文以STM32F051K8U6为例,主要介绍GPIO寄存器特点及应用,以及CubeMX的配置和HAL库函数的使用。

GPIO接口简介

通用输入输出接口GPIO是嵌入式系统、单片机开发过程中最常用的接口,用户可以通过编程灵活的对接口进行控制,实现对电路板上LED、数码管、按键等常用设备控制驱动,也可以作为串口的数据收发管脚,或AD的接口等复用功能使用。因此其作用和功能是非常重要的。

SoC芯片上的单个引脚可以通过配置GPIO寄存器以实现多种不同的功能,这就是多路复用。下图是芯片上GPIOA这一组端口上的引脚复用功能示意。

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端口都有一套上述的寄存器去配置它自己的功能

MODER

GPIO 端口模式寄存器 (GPIOx_MODER) (x = A..D,F),主要用于指定GPIO端口的工作模式。

MODER是32位寄存器,其中每两位对应一个引脚。对于每个GPIOx上的引脚y,存在位[2y+1:2y](y = 0...15),即MODERy[1:0],用于配置I/O口的工作模式,模式代码如下:
        00:输入模式(复位状态)
        01:通用输出模式
        10:复用功能模式
        11:模拟模式

OTYPER

GPIO 端口输出类型寄存器 (GPIOx_OTYPER) (x = A..D,F),主要用于指定GPIO端口的输出类型。

OTYPER是32位寄存器,其中31:16为保留位,15:0为有效位,每一位二进制位对应一个引脚。对于每个GPIO上的引脚y,存在位[y](y = 0...15),即OTy,用于配置引脚的输出类型,类型代码如下:
        0:推挽输出(复位状态)
        1:开漏输出

如下图所示,若将输出类型设置为推挽输出模式,则不需要外接上(下)拉电阻,直接使用输出驱动器内部的互补信号输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值