stm32的按键控制
扫描二维码
随时随地手机看文章
1 /*
2 ::按键控制
3 PA8接LED,PE2接按键
4 */
5 #include"stm32f10x.h"
6 void RCC_Configuration(void);
7 void GPIO_Config(void);
8 void Delay(__IO uint32_t nCount);
9
10 int main()
11 {
12 RCC_Configuration(); //系统时钟配置|使能GPIO口
13 GPIO_Config(); //LED控制配置
14 while (1)
15 {
16 if(!GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2))
17 {
18 Delay(0x000FF);//延时防抖
19 if(!GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2))
20 {
21 GPIO_WriteBit(GPIOA,GPIO_Pin_8,(BitAction)(1-GPIO_ReadOutputDataBit(GPIOA,GPIO_Pin_8)));
22 }
23 }
24 }
25 }
26 /****************************************************************************
27 * 名 称:void GPIO_Config(void)
28 * 功 能:GPIO初始化函数
29 * 入口参数:无
30 * 出口参数:无
31 * 说 明:
32 * 调用方法:无
33 ****************************************************************************/
34 void GPIO_Config(void)
35 {
36 GPIO_InitTypeDef GPIO_InitStructure;
37 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //配置LEDA8
38 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出
39 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
40 GPIO_Init(GPIOA, &GPIO_InitStructure);
41
42 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2; //配置按键PE2
43 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;//上拉输入
44 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
45 GPIO_Init(GPIOE, &GPIO_InitStructure);
46 }
47 /****************************************************************************
48 * 名 称:void RCC_Configuration(void)
49 * 功 能:系统时钟配置为72MHZ|使能GPIO口
50 * 入口参数:无
51 * 出口参数:无
52 * 说 明:
53 * 调用方法:无
54 ****************************************************************************/
55 void RCC_Configuration(void)
56 {
57 SystemInit();
58 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOE, ENABLE);//使能GPIO口
59 }
60 /****************************************************************************
61 * 名 称:void Delay(__IO uint32_t nCount)
62 * 功 能:延时函数
63 * 入口参数:无
64 * 出口参数:无
65 * 说 明:
66 * 调用方法:无
67 ****************************************************************************/
68 void Delay(__IO uint32_t nCount)
69 {
70 for(; nCount != 0; nCount--);
71 }