TA的每日心情 | 奋斗 2013-9-16 09:51 |
---|
签到天数: 16 天 连续签到: 1 天 [LV.4]偶尔看看III
|
按键查询方式,无非就是读按键对应引脚的电平,下面直接贴代码
1.按键引脚初始化- void KEY_Init(void)
- {
- /* GPIOC Periph clock enable */
- GPIO_InitTypeDef GPIO_InitStructure;
- RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOF, ENABLE);
- /* Configure PF6 and PF7 in input pushpull mode */
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;
- GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
- GPIO_InitStructure.GPIO_Speed =GPIO_Speed_Level_2;
- GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
- GPIO_Init(GPIOF, &GPIO_InitStructure);
- }
复制代码 2.读取按键引脚电平- uint8_t ReadKeyValue(void)
- {
- uint8_t key_value = 0xFF;
- if(GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_6) == Bit_RESET)
- {
- SysTick_Delay_nms(10);
- if(GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_6) == Bit_RESET)
- {
- key_value = KEY1;
- }
- }
-
- if(GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_7) == Bit_RESET)
- {
- SysTick_Delay_nms(10);
- if(GPIO_ReadInputDataBit(GPIOF, GPIO_Pin_7) == Bit_RESET)
- {
- key_value = KEY2;
- }
- }
-
- return key_value;
- }
复制代码 3.按键控制小灯- LED_Init();
- KEY_Init();
- while (1)
- {
- if(ReadKeyValue() == KEY1)
- {
- LED_Ctrl(LED1, LED_ON);
- LED_Ctrl(LED2, LED_OFF);
- }
-
- if(ReadKeyValue() == KEY2)
- {
- LED_Ctrl(LED1, LED_OFF);
- LED_Ctrl(LED2, LED_ON);
- }
- }
复制代码 |
|