一、输入设备:按键
但按下时通常会产生抖动,可以通过软件或硬件进行消抖,软件的话就是采用二次判断,排除因为误触发。
二、接线图:
三、
(1)创建led的驱动函数,LED.c及.h文件
开启时钟,初始GPIO,然后给引脚写高初始熄灭led,库函数里边再次调用函数名进行模块外部声明。
编写Led点亮熄灭的函数,同时记得在.h里再次外部声明下
点亮测试下:
(2)同样编写 按键的函数.c .h文件
先设置输入时钟,然后初始化一下引脚(采用上拉模式)
然后开始设置按键的返回值函数,用于控制灯的指令, (逻辑:按下后进行判定,然后延迟一下再次判定是否按下,而不是由于干扰导致的,如果按下了那么KeyNum赋值为1,)
最后写主函数进行按键控制led(逻辑:先调用初始化函数,然后在主函数里一直进行按键检测,当按下时KeyNum值发生变化,从而控制led的状态发生变化)
就可以实现按键控制led亮了,要想闪烁还可以加一个状态翻转函数(通过读取输出的值进行状态判断及控制)
前两个读取输入的数据,34为读取输出的数据,
------------------------------------------------------------------------------------------------------------------------
四、通过光敏传感器控制蜂鸣器
使用LM393比较器内含两路比较器,图中R2为参考比较电压可以通过可调电阻进行调节从而改变IN-点的电压,N1为传感器器件,当光被遮挡时,电阻的阻值降低,根据分压原理,N1上的电压降低,然后和IN-进行比较,低于IN-时,A0输出低电平(平时N1上的阻值比较高,A0从而输出高电平);
因此可以通过GPIO读取引脚的输入值,从而和按键逻辑一样控制BEEP的响停。
五、C语言
宏定义
变量类型 换名 函数
结构体 多类型多个数变量的打包
:属于组合数据类型,在函数传递的过程中采用的是指针的方式,
枚举
举例