[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 }
复制代码
相关文章
|
芯片
最详细STM32,cubeMX 按键点亮 led
最详细STM32,cubeMX 按键点亮 led
199 0
|
5月前
STM32CubeMX 按键控制LED
STM32CubeMX 按键控制LED
74 0
|
5月前
stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
stm32f407探索者开发板(八)——按键输入实验--GPIO做输入
STM32速成笔记(三)—按键检测
本文介绍了如何利用STM32进行按键检测,先介绍了原理,后面给出了配置步骤和应用例程。此外,本文还叙述了如何利用一个按键单独控制一个LED亮灭,以及如何检测按键长短按。
707 0
STM32速成笔记(三)—按键检测
|
7月前
|
数据安全/隐私保护 芯片
【STM32基础 CubeMX】按键的检测
【STM32基础 CubeMX】按键的检测
180 0
No.6 STM32F429IGT6 LED按键检测 按键点灯 (STM32F429/F767/H743)
No.6 STM32F429IGT6 LED按键检测 按键点灯 (STM32F429/F767/H743)
使用STM32CubeMX实现按下按键,电平反转
使用STM32CubeMX实现按下按键,电平反转
234 0
使用STM32CubeMX实现按下按键,电平反转
|
C语言
STM32矩阵按键
STM32矩阵按键