stm32单片机按键控制的用法解析

控制/MCU

1878人已加入

描述

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 }

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分