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

文章介绍了如何进行模块化驱动开发,包括LED的初始化和控制,按键的检测及消抖处理,以及如何根据光敏模块控制蜂鸣器的工作。通过GPIO函数读取和设置IO口电平,实现了硬件功能的灵活控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、模块化LED初始化函数

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

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

1、创建初始化函数

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

2、创建点灯函数

 3、创建函数声明

 点亮LED

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

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

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

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

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

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

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

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

 Delay_ms(20); 用来消抖动

到此按键检测完成

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

1、为了同一按键按下实现电平翻转功能,使用读取LED口的电平函GPIO_ReadOutputDataBit,实现翻转。

 最终实现按键控制LED亮灭

三、光敏模块控制蜂鸣器

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

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

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

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值