文档库 最新最全的文档下载
当前位置:文档库 › GPIO在MDK中的使用

GPIO在MDK中的使用

GPIO在MDK中的使用
GPIO在MDK中的使用

STM32学习(四)——GPIO在MDK中的使用

使用GPIO时,我们常用到的是:stm32f10x_gpio.h和stm32f10x_gpio.h文件。1、gpio.h介绍

GPIO.H中是一些参数的定义和外部驱动的声明

IS_GPIO_ALL_PERIPH(PERIPH):用来判断输入的GPIO_X是不是在范围之内

IS_GPIO_SPEED(SPEED):判断GPIO的频率是不是输入正确

IS_GPIO_MODE(MODE):判断输入模式是否正确

IS_GPIO_BIT_ACTION(ACTION):判断位设置是否正确

IS_GPIO_PIN(PIN):判断输入的IO口是不是在0-15范围内

IS_GET_GPIO_PIN(PIN):判读读取IO口是否在0-15范围内

typedef enum

{ GPIO_Mode_AIN = 0x0,

GPIO_Mode_IN_FLOATING = 0x04,

GPIO_Mode_IPD = 0x28,

GPIO_Mode_IPU = 0x48,

GPIO_Mode_Out_OD = 0x14,

GPIO_Mode_Out_PP = 0x10,

GPIO_Mode_AF_OD = 0x1C,

GPIO_Mode_AF_PP = 0x18

}GPIOMode_TypeDef;

上面这个结构体是定义了GPIO在设置时的一些参数。其中包括有输入输出、IO模式、IO 方式等。

void GPIO_DeInit(GPIO_TypeDef* GPIOx);

这个函数是用来默认设置GPIO的,只需要输入GPIO的端口号就可以了。在GPIO.C中有详细的代码和说明。

void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct);

这个函数用来设置GPIO的管脚,我们常用到的GPIO配置程序。GPIOx, 是要配置的端口号,GPIO_InitStruct该端口的详细配置。

2、下面我简单介绍一些GPIO是用默认驱动库的配置。

GPIO_InitTypeDef GPIO_InitS;

GPIO_InitS.GPIO_Pin = GPIO_Pin_1 ;

GPIO_InitS.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_InitS.GPIO_Mode = GPIO_Mode_Out_PP;

GPIO_Init(GPIOA, &GPIO_InitS);

我配置的是GPIOA的1引脚。输出模式,输出速度是50MHz。这样我们就配置好了PA_01引脚。

3、设置GPIO的输出状态,输出高和低,对于下面函数的具体代码,大家可以在GPIO.C 中查看。

3.1、输出高电平

GPIO_SetBits(GPIOA, GPIO_Pin_1);

3.2、输出低电平

GPIO_ResetBits(GPIOA, GPIO_Pin_1);

这样,我们就可以使用GPIO的输出功能了。输入检测类似于输出功能,只要将模式修改一下就可以了。后面我们详细介绍GPIO寄存器。

相关文档