智能语音时钟--按键控制亮度

STM32开发板通过按键模块调整LED灯亮度

目录

STM32开发板通过按键模块调整LED灯亮度

介绍

硬件准备

GPIO原理

上拉输入模式(Pull-up input)

配置步骤

配置步骤

PWM原理

PWM的应用

配置步骤

配置步骤

按键调光代码示例

按键初始化代码

PWM初始化代码

​编辑

主函数

总结

视频链接


介绍

在本教程中将使用按键模块来调整LED灯的亮度,实现智能语音时钟开灯后可以用按键手动调光的功能。通过学习本教程将了解如何读取按键模块的输入,并通过PWM(脉宽调制)技术来控制LED灯的亮度。

硬件准备

  1. STM32开发板(例如STM32F103VET6)
  2. 按键模块
  3. LED灯

GPIO原理

GPIO(通用输入输出)是一种在电子设备中广泛使用的接口,用于与外部设备进行通信和控制。它的主要特点是可以在输入和输出两种模式之间切换,非常灵活。在STM32开发板上的IO端口可以配置为输入模式或输出模式,输入模式有四种输入状态,分别是浮动输入(Floating input)、上拉输入(Pull-up input)、下拉输入(Pull-down input)、模拟模式(Analog mode);输出模式也有四种,分别是推挽输出(Push-pull output) 、开漏输出(Open-drain output)、复用推挽输出(Alternate Function Push-Pull Output)、复用开漏输出(Alternate Function Open-Drain Output)。在本教程中,我们将按键模块连接到一个IO端口,并将其配置为上拉输入模式。

上拉输入模式(Pull-up input)

当IO端口配置为上拉输入模式时,引脚内部通过一个内部上拉电阻连接到3.3V,使引脚默认处于高电平状态,通过读取电平状态,我们可以判断按键是否被按下。

配置步骤

  1. 使能时钟。
  2. 设置IO口和GPIO工作模式。
  3. 初始化IO结构体。

配置步骤

初始化GPIO

读取IO电平信号

PWM原理

PWM(Pulse Width Modulation,脉宽调制)是一种通过改变脉冲的宽度来控制信号强度的方法。PWM信号的频率保持不变,但高电平时间的长短(即占空比)可以调节,不同的占空比输出的信号强度不同,两者往往是成正比。

PWM的应用

PWM广泛应用于LED亮度控制、电机调速、音频信号生成等。通过调节PWM信号的占空比,我们可以控制LED的亮度,0%占空比表示LED熄灭,100%占空比表示LED全亮。

配置步骤

  1. 使能时钟。
  2. 初始化TIM对应的IO口。
  3. 配置TIM结构体。
  4. 初始化TIM结构体。
  5. 配置TIM的OC通道结构体
  6. 初始化TIM的OC通道结构体
  7. TIM寄存器设置。
  8. 使能TIM。

配置步骤

初始化TIM

调整占空比大小

按键调光代码示例

按键初始化代码

PWM初始化代码

主函数

总结

通过本教程,我们实现了按键控制LED灯亮度的功能,介绍了IO电平的读取和PWM的原理,并通过具体的代码示例展示了如何实现这一功能。希望这期教程能够让你对嵌入式开发有更深入的了解,并能够将所学知识应用到实际项目中。

视频链接

按键控制LED灯实现:智能语音时钟-按键控制led灯带_哔哩哔哩_bilibili

TIM配置:协议篇-TIM配置_哔哩哔哩_bilibili

GPIO配置:协议篇-gpio配置_哔哩哔哩_bilibili

希望本教程能帮助你更好地理解TIM的原理!要是觉得有用麻烦给我点个赞,谢谢各位了。

  • 15
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值