(STM32基础)按键控制LED&光敏传感器控制蜂鸣器

一、模块化LED初始化函数

1、建一个Hardware文件夹专门用来存放硬件驱动模块化调用函数,方便后续调用。

(STM32基础)按键控制LED&光敏传感器控制蜂鸣器_第1张图片

1)创建LED.c .h 文件 存放函数定义  和函数声明

1、创建初始化函数

(STM32基础)按键控制LED&光敏传感器控制蜂鸣器_第2张图片

因为初始化后IO口默认低电平,所以初始化最后置1  

2、创建点灯函数

(STM32基础)按键控制LED&光敏传感器控制蜂鸣器_第3张图片

 3、创建函数声明

(STM32基础)按键控制LED&光敏传感器控制蜂鸣器_第4张图片

 点亮LED

二、创建按键模块控制函数

1)在Hardware中创建Key.c  .h两个文件,并初始按键端口

(STM32基础)按键控制LED&光敏传感器控制蜂鸣器_第5张图片

2)使用输入库函数来读取IO口的值(按键检测)

GPIO_ReadInputDataBit 用来读取输入寄存器的一位的值 

GPIO_ReadInputData 用来读取整个输入寄存器的值

GPIO_ReadOutputDataBit  用来读取输出寄存器的某一位值

GPIO_ReadOutputData 用来读取整个输出寄存器的值

(STM32基础)按键控制LED&光敏传感器控制蜂鸣器_第6张图片

 用GPIO_ReadInputDataBit函数读取指定Pin口的电平,并设置键码返回值

(STM32基础)按键控制LED&光敏传感器控制蜂鸣器_第7张图片

 Delay_ms(20); 用来消抖动

到此按键检测完成

3)设置主函数接受按键返回值后的功能

1、为了同一按键按下实现电平翻转功能,使用读取LED口的电平函GPIO_ReadOutputDataBit,实现翻转。(STM32基础)按键控制LED&光敏传感器控制蜂鸣器_第8张图片

 最终实现按键控制LED亮灭

三、光敏模块控制蜂鸣器

1)模块化创建蜂鸣器模块两个函数文件,直接复用LED的亮灭程序代码,注意修改端口。 

(STM32基础)按键控制LED&光敏传感器控制蜂鸣器_第9张图片

2)模块化创建光敏模块函数文件

因为函数代码内容较为简单 所以直接提供代码

(STM32基础)按键控制LED&光敏传感器控制蜂鸣器_第10张图片

 (STM32基础)按键控制LED&光敏传感器控制蜂鸣器_第11张图片

 可以完成强光环境下蜂鸣器鸣响,弱光环境下蜂鸣器不鸣响。

你可能感兴趣的:(c语言,物联网,开发语言)