【望月追忆】带你入门STM32F0之三:按键----查询方式
STMCU
4534 人阅读
|
1 人回复
|
2012-12-07
TA的每日心情 | 奋斗 2013-9-16 09:51 |
|---|
签到天数: 16 天 连续签到: 1 天 [LV.4]偶尔看看III
状元
- 积分
- 6672
|
按键查询方式,无非就是读按键对应引脚的电平,下面直接贴代码
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);
- }
- }
复制代码 |
|
|
|
|
|
|
|
|
TA的每日心情 | 奋斗 2014-6-4 13:58 |
|---|
签到天数: 188 天 连续签到: 1 天 [LV.7]常住居民III
状元
- 积分
- 6960
     

|
沙发
MMzhang-319191
发表于 2012-12-11 14:04:15
|
只看该作者
|
|
心中有曲自然嗨!!!
|
|
|
|
|
|