初学者对STM32GPIO库函数的理解

   日期:2021-03-13     浏览:110    评论:0    
核心提示:初学者对STM32GPIO库函数的理解1.首先我们从GPIO初始化结构体入手<1>uint16_t GPIO_Pin; 意义:指定要配置的GPIO引脚。这个参数可以是@ref GPIO_pins_define的任意值。前面提到的这个宏定义的位置就在下面127行,它的主要作用就是把GPIO的各个引脚的地址给封装了起来。<2>GPIOSpeed_TypeDef GPIO_Speed意义:指定所选引脚的速度。他的参数可以是@ref GPIOSpeed_Type...

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);
作用:以太网配置函数,有点遥远的感觉。

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服