STM32----GPIO的介绍以及基本使用

一.gpio的简介
就是通用的输入和输出的端口的简介,就是stm32可以控制的引脚,stm32芯片饿gpio引脚和外部的设备连接起来的话就可以实现外部通信,控制以及数据的采集。gpio可以分为好几组。在这里插入图片描述
1.两个二极管是用来保护的防止的电压过高或者是过低。
2.P-MOS和N-MOS是的具有了开漏输出和推挽输出(一般使用在0-3.3v之间使用)不是特别的情况一般使用的是推挽输出。i2c,SMBUS等通讯使用的是线与的模式的电路中的时候,使用的是开漏输出。一共八种模式可以根据需要来写。
在这里插入图片描述
3.输出数据寄存器
4.复用功能输出
5.输入数据寄存器
6.服用功能输入
7.模拟输入输出

二.库函数的编写以及gpio的初始化
在这里插入图片描述
相对而言比较简单只有三个元素就是引脚,模式,以及速度的设置。

三.库函数里面其他函数的介绍

1.uint8_t GPIO_ReadInputDataBit (GPIO_TypeDef* GPIOx , uint16_t GPIO_Pin)

函数解释:读取io输入管脚的值

参数:(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。

  (2)GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。

返回值:输入管脚的值 Bit_SET(高电平),Bit_RESET(低电平)

2.uint16_t GPIO_ReadInputData (GPIO_TypeDef* GPIOx )

函数解释:读取输入io数据,该函数用于读取一个io分组的所有数据

参数:GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。

返回值:一个io端口的所有数据(输入状态)

3.uint8_t GPIO_ReadOutputDataBit (GPIO_TypeDef* GPIOx , uint16_t GPIO_Pin)

函数解释:读取io输出管脚的值

参数:(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。

   (2)  GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。

返回值:输出管脚的值 Bit_SET(高电平),Bit_RESET(低电平)

4.uint16_t GPIO_ReadOutputData (GPIO_TypeDef* GPIOx )

函数解释:读取输出io数据,该函数用于读取一个io分组的所有数据

参数:GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。

返回值:一个io端口的所有数据(输出状态)

5.void GPIO_SetBits(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)

函数解释:对io管脚进行置位(输出高电平)。这个函数使用GPIOx_BSRR寄存器来实现原子读或者修改操作。在这种情况下,在读和修改访问时发生一个IRQ中断是没有危险的。

参数:(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。

   (2)GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。

6.void GPIO_ResetBits(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)

函数解释:对io管脚进行复位(输出低电平)。这个函数使用GPIOx_BSRR寄存器来实现原子读或者修改操作。在这种情况下,在读和修改访问时发生一个IRQ中断是没有危险的。

参数:(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。

   (2)GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。

7.void GPIO_WriteBit(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin,BitActionBitVal)

函数解释:对某一位进行写入操作。

参数:(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。

   (2)GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。

   (3)BitVal:写入高电平或者低电平(Bit_RESET:写入低电平 Bit_SET:写入高电平)

8.void GPIO_Write(GPIO_TypeDef* GPIOx,uint16_t PortVal)

函数解释:对GPIO端口进行写入操作,适用于对统一端口的多个管脚的写入。

参数:(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。

   (2)BitVal:写入高电平或者低电平(Bit_RESET:写入低电平 Bit_SET:写入高电平)

9.void GPIO_ToggleBits(GPIO_TypeDef* GPIOx,uint16_t GPIO_Pin)

函数解释:翻转指定的GPIO口,如果当前io是高电平,则变为低电平。如果当前io是低电平,则变为高电平。

参数:(1)GPIOx,GPIO的分组,如 GPIOA,GPIOB,GPIOC等的宏定义。

   (2)GPIO_Pin:指定具体的io脚,如GPIO_Pin_0,GPIO_Pin_1这样的宏定义。

四.主要实验的话主要是gpio的输入以及输出,需要主要的是gpio还具有位带操作的存在。

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 数字20 设计师:CSDN官方博客 返回首页