一、按键与传感器模块
**1、**按键介绍


这个抖动比较快,通常在5-10ms之间;
对单片机来说很漫长,所以我们要对这个抖动进行过滤;
不然会出现按键机按一下,单片机会反映了很多次的现象;
最简单的过滤方法就是加一段延时,将抖动时间耗过去;
2、传感器模块的介绍


3、硬件电路
A、按键
一般用上面两种接法


B、传感器模块

二、按键控制LED(GPIO输入部分的代码)
1、封装代码
A、单独创建LED.c和.h文件


然后回到kil还是一样的步骤



在创建一个.h文件








B、封装LED的代码





C、单独创建KEY.c和.h文件
同上



D、封装KEY的代码

2、认识读取函数
A、GPIO_StructInit


B、GPIO_ReadInputData

C、GPIO_ReadOutputDataBit

D、PIO_ReadOutputData

E、总结


3、实现按键控制LED
A、LED1亮灭









B、实现LED状态取反


整体逻辑


最后还是在.h文件中声明一下,这样就可以在主函数中使用了;

三、光敏传感器控制蜂鸣器
1、光敏传感器
遮住光线时,输出指示灯灭,代表输出高电平;输出指示灯亮,代表输出低电平;

2、封装蜂鸣器模块
和上面一样的步骤,可以将按键控制LED的代码复制过来;



3、封装光敏传感器模块
同上



再到.h文件中声明一下,然后再到主函数中使用;


四、总结GPIO的使用方法
首先初始化时钟;
然后定义结构体,在赋值结构体;
GPIO_Mode:可以选那8种输入模式;
GPIO_Pin:选择引脚,可以用按位或的方式同时选中多个引脚;
GPIO_Speed:选择输出速度;
最后使用GPIO_Init函数,将指定的GPIO外设初始化好,
