使用步骤

1;开启相关IO时钟

2;初始化相关IO的模式   //模拟输入 浮空 上/下拉

3;配置函数的初始化调用和用GPIO_ReadInputDataBit();函数来获取IO状态

配置

#include "key.h" //引脚PA0 PC13

void key_init(void)

{ GPIO_InitTypeDef key1_GPIO_InitStruct;//按键1GPIO结构体名称

GPIO_InitTypeDef key2_GPIO_InitStruct; //按键1GPIO结构体名称

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//开启GPIOA的时钟
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//开启GPIOC的时钟

key1_GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPD;//GPIO模式选择  下拉
	key1_GPIO_InitStruct.GPIO_Pin|=GPIO_Pin_0;//GPIO引脚选择 用|不影响其他地方
GPIO_Init(GPIOA, &key1_GPIO_InitStruct);//gpio按键1初始化完成
	key2_GPIO_InitStruct.GPIO_Mode=GPIO_Mode_IPD;//GPIO模式选择  下拉
	key2_GPIO_InitStruct.GPIO_Pin|=GPIO_Pin_13;//GPIO引脚选择 用|不影响其他地方
GPIO_Init(GPIOC, &key2_GPIO_InitStruct);//gpio按键2初始化完成

}

头文件声明

#ifndef key_h

#define key_h

#include "define.h"//公共头文件

#define key1_start GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0)

#define key2_start GPIO_ReadInputDataBit(GPIOC, GPIO_Pin_13)

void key_init(void);

#endif

函数使用

#include "define.h" // Device header

int main(void)

{ rgb_init();//LED初始化

key_init();//按键初始

LED_B_OFF;//LED初始灭

LED_R_OFF;//LED初始灭

LED_G_OFF;//LED初始灭

while(1)

{

if(key1_start)//获取KEY1电平

{

LED_B_OFF;

LED_R_ON;//点亮

LED_G_OFF;

}

if (key2_start&&(!key1_start))///获取KEY2电平

{

LED_B_OFF; LED_R_OFF; LED_G_OFF;//关闭LED

}

}

}