
使用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寄存器。 |