M-Arch(11)第十个示例:PWM驱动有源蜂鸣器SFM-27-I

本文详细介绍了如何使用PWM信号控制无源蜂鸣器,通过STM32或GD32的定时器配置,实现蜂鸣器的频率控制。文中提供了基本的接口代码示例,并对比了有源和无源蜂鸣器的区别。通过此方法,可以灵活地调整蜂鸣器发出的声音频率。
摘要由CSDN通过智能技术生成

前言

回顾下之前的章节:

  • 第一章节中我们描述了整个框架的核心设计思路以及主要的文件架构

  • 第二章节中我们基于一个简单的定时器OS实现了串口的数据打印,并完成了通用crc模块的设计和测试

  • 第三章节中我们给出了真随机数和伪随机数的概念和代码示例,并在架构上对接口进行了重构

  • 第四章节中我们回顾了FMC的基本知识,并给出了示例,后面我们将在设计IAP的时候再次使用到FMC

  • 第五章节中我们使用ADC和DMA搭建了一个通用的采样框架,并通过串口给出了采样的数据示例

  • 第六章节中我们总结了DAC的基本使用方法,并通过DAC生成了任意频率的正弦波,三角波和方波

  • 第七章节中我们总结下时钟的概念,并给出了获取系统中各模块的时钟频率的代码

  • 第八章节中我们介绍了如何通过串口的DMA来实现串口数据的收发

  • 第九章节中我们介绍了定时器的使用,以及如何产生普通占空比PWM以及互补带死区的PWM,这在控制中十分重要

  • 第十章节中我们介绍了SPI的概念,以及用三线SPI的时序驱动DS1302时钟芯片的方法,进一步掌握了SPI的使用

本文我们将介绍使用PWM控制无源蜂鸣器的方法。

关键字:STM32,GD32,PWM,无源蜂鸣器

蜂鸣器

蜂鸣器有2种:无源蜂鸣器和有源蜂鸣器,所谓有源,是指蜂鸣器内部带有震荡源,通电就可以响;所谓无源,是指蜂鸣器内部不带震荡源,需要频率信号驱动。

有源蜂鸣器无源蜂鸣器
有震荡源-频率固定无震荡源-频率可控
管脚有方向管脚无方向
单向有内阻,一般超过1KΩ双向有内阻,一般几百Ω
有电路板无电路板
通电即发声频率信号驱动
便宜
66a81375a04804d8616f403f93ac2a2e.png
SFM-27-I

对于有源蜂鸣器而言,可通过PWM的高低电平控制蜂鸣器的蜂鸣频率,高电平响,低电平不响。

基本接口代码如下(GD32):

void timer3_pwm_change(uint16_t period, uint16_t pulse)
{
    timer_channel_output_pulse_value_config(TIMER2, TIMER_CH_1, pulse);
    timer_autoreload_value_config(TIMER2, period);
    TIMER_SWEVG(TIMER2) |= (uint32_t)TIMER_SWEVG_UPG;
}

结果展示

fee031ff63142a7edfa5e259c58716a2.png
PWM有源蜂鸣器

视频结果

--EOF--

例行求粉,谢谢!

93bda84ba1813e0724e1ac700a5a2273.png
求粉
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值