打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
初学者对STM32GPIO库函数的理解

1.首先我们从GPIO初始化结构体入手

<1>uint16_t GPIO_Pin;

意义:指定要配置的GPIO引脚。这个参数可以是@ref GPIO_pins_define的任意值。前面提到的这个宏定义的位置就在下面127行,它的主要作用就是把GPIO的各个引脚的地址给封装了起来。

<2>GPIOSpeed_TypeDef GPIO_Speed

意义:指定所选引脚的速度。他的参数可以是@ref GPIOSpeed_TypeDef的值。

这里的引脚速度主要有3个,我们可以通过上面的这个结构体去进行定义

<3>GPIOMode_TypeDef GPIO_Mode;

意义:指定所选引脚的工作模式,该参数的值可以是@ref GPIOMode_TypeDef

typedef enum

{ GPIO_Mode_AIN = 0x0, //模式输入

GPIO_Mode_IN_FLOATING = 0x04, //浮空输入 GPIO的输入经常用到

GPIO_Mode_IPD = 0x28, //带下拉输入

GPIO_Mode_IPU = 0x48, //带上拉输入

GPIO_Mode_Out_OD = 0x14, //开漏输出

GPIO_Mode_Out_PP = 0x10, //推挽输出 GPIO的输出经常用到

GPIO_Mode_AF_OD = 0x1C, //复用功能的开漏输出

GPIO_Mode_AF_PP = 0x18 //复用功能的推挽输出

}GPIOMode_TypeDef;

2.结构体基本就是简单的配置,简单来说就是按需选择。接下来进行学习.h内的函数和.c内的函数体。(主要是经常用到的)

<1>void GPIO_DeInit(GPIO_TypeDef* GPIOx);

作用:将外设GPIOX寄存器重设为缺省值。

<2>void GPIO_AFIODeInit(void);

作用:将复用功能(重映射事件控制和EXTI设置)重设为缺省值

<3>void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

作用:初始化GPIO的外设

<4>void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct);

作用:GPIO的外设参数被设定为缺省值

<5>uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

作用:读取指定端口引脚去进行输入

<6>uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);

作用:读取指定端口去进行输入

<7>uint8_t GPIO_ReadOutputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

作用:读取指定的端口引脚去进行输出

<8>uint16_t GPIO_ReadOutputData(GPIO_TypeDef* GPIOx);

作用:读取指定的端口去进行输出

<9>void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

作用:设置指定的数据端口位 :我们也可以理解为给与1 :

参数为:某个端口的某个引脚需要自己去设置

<10>void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

作用:清除指定的数据端口位 :我们也可以理解为给与0 :

参数为:某个端口的某个引脚需要自己去设置

<11>void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);

作用:置位或清除指定的GPIO的某个引脚,有点结合9和10两个函数的感觉

<12>void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);

作用:置位或清除指定的GPIO端口

<13>void GPIO_PinLockConfig(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);

作用:锁定GPIO管脚设置寄存器,锁定后在下次端口初始化之前将不能再次配置该端口管脚

<14>void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);

作用:选择用作事件的GPIO输出引脚 :这一块跟EXTI外部中断有关系,在配置时可以选择中断模式以及事件模式

<15>void GPIO_EventOutputCmd(FunctionalState NewState);

作用:使能输出事件

<16>void GPIO_PinRemapConfig(uint32_t GPIO_Remap, FunctionalState NewState);

作用:更改指定引脚的映射,之所以这样的原因是为了使我们的GPIO的引脚可以得到最大化的利用价值

<17>void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource);

作用:选择GPIO的引脚作为中断的线路

<18>void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface);

作用:以太网配置函数,有点遥远的感觉。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
STM32库函数汇总
初识stm32的GPIO
stm32.cube(一)
GPIO的上拉和下拉输入
STM32学习笔记——GPIO之从库函数到寄存器
使用RTE_Driver做驱动
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服