1、初始化代码
#include "bsp_gpio.h"/* 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 复用推挽输出*//* GPIO_Speed_10MHz = 1, GPIO_Speed_2MHz, GPIO_Speed_50MHz*/void GPIO_OUT_INIT(){ //打开时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE); //初始化IO口 { GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_13; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStruct.GPIO_Speed= GPIO_Speed_50MHz; GPIO_Init(GPIOC,&GPIO_InitStruct); }}void GPIO_IN_INIT(){ //打开时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE); //初始化IO口 { GPIO_InitTypeDef GPIO_InitStruct; GPIO_InitStruct.GPIO_Pin = GPIO_Pin_2; GPIO_InitStruct.GPIO_Mode = GPIO_Mode_IPU;// GPIO_InitStruct.GPIO_Speed= GPIO_Speed_50MHz; GPIO_Init(GPIOB,&GPIO_InitStruct); }}
2、GPIO函数使用
uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);例:i = GPIO_ReadInputDataBit(GPIOB,GPIO_Pin_2); 读取PB2的数据uint16_t GPIO_ReadInputData(GPIO_TypeDef* GPIOx);例:i = GPIO_ReadInputData(GPIOB); 读取PB的数据void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);例:GPIO_SetBits(GPIOC,GPIO_Pin_13); 将PC13设置为高电平void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin);例:GPIO_ResetBits(GPIOC,GPIO_Pin_13); 将PC13设置为低电平void GPIO_WriteBit(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, BitAction BitVal);例:GPIO_WriteBit(GPIOC,GPIO_Pin_13,Bit_SET); 将PC13设置为高电平void GPIO_Write(GPIO_TypeDef* GPIOx, uint16_t PortVal);例:GPIO_Write(GPIOC, 0X0055); 将PC口输出设为0x0055;