明解STM32—GPIO应用设计篇之API函数及配置使用技巧

一、前言

        本篇开始对STM32的GPIO在实际开发设计中的使用配置和技巧进行探讨,可以先去回顾下之前介绍的GPIO的相关理论基础知识包括基本结构,工作模式和寄存器原理。

        了解过STM32的GPIO相关的理论知识,这样在应用GPIO开发过程中,能更好的理解GPIO的特点,应用起来会更加的得心应手。

        后续将从以下图1中所示的几个方面对GPIO应用设计中的步骤展开介绍。本篇先介绍GPIO的基本API函数定义,配置初始化的流程,以及使用技巧;针对将GPIO的引脚用于外部中断的功能将作为单独的一篇进行详细的讨论介绍。​

图1 GPIO应用设计


二、API函数

        STM32有多种类型的库,本节所介绍的STM32的GPIO函数接口是STM32标准库的函数接口,接口总共分为4种类型,如图2所示。​

图2 GPIO库函数接口分类

1、关键参数

        在详细介绍各个API函数接口功能之前,我们需要对函数接口中使用到的关键的几个参数进行分析。

(1)、GPIO_TypeDef* GPIOx

        这个参数是用于指定需要具体的GPIO端口号定义,参数的范围为GPIOA~GPIOK。

(2)、GPIO_InitTypeDef* GPIO_InitStruct

        这个参数是GPIO端口需要初始化的功能参数的结构体指针,下面我们看看这个结构体的定义。

复制代码
1 typedef struct
2 {
3     uint32_t GPIO_Pin;            //GPIO端口的引脚
4     GPIOMode_TypeDef GPIO_Mode;   //GPIO的端口模式                                         
5     GPIOSpeed_TypeDef GPIO_Speed; //GPIO的输出速度频率
6     GPIOOType_TypeDef GPIO_OType; //GPIO输出时的类型
7     GPIOPuPd_TypeDef GPIO_PuPd;   //GPIO上下拉电阻设置                                       
8 }GPIO_InitTypeDef;
复制代码
2999540-20230426212924564-944033156.gif

  (a)、GPIO端口的引脚:可选范围为GPIO_Pin_0~GPIO_Pin_15,也可以选所有引脚GPIO_Pin_All。

  (b)、GPIO的端口模式:用于设置GPIO的端口模式,可选的端口模式如下。

复制代码
1 typedef enum
2 {
3     GPIO_Mode_IN  = 0x00, //普通IO口输入
4     GPIO_Mode_OUT = 0x01, //普通IO口输出
5     GPIO_Mode_AF  = 0x02, //管脚复用功能
6     GPIO_Mode_AN  = 0x03  //模拟输入,用于ADC功能
7 }GPIOMode_TypeDef;
复制代码
2999540-20230426212924564-944033156.gif

        (c)、GPIO的输出速度频率:当GPIO引脚用于普通功能输出或复用功能输出时,GPIO的输出速度频率,可选的输出速率如下。

复制代码
1 typedef enum
2 {
3     GPIO_Low_Speed     = 0x00, //GPIO_Speed_2MHz
4     GPIO_Medium_Speed  = 0x01, //<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq_41146932

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值