STM32与有源蜂鸣器

发布者:电子科技爱好者最新更新时间:2017-11-07 来源: eefocus关键字:STM32  有源蜂鸣器 手机看文章 扫描二维码
随时随地手机看文章

有源蜂鸣器的声音是固定的,工作电压恒定,改变通断电的时间获得不同时长的音响,譬如连续音、快速短音、慢速长音(类似莫尔斯电报)来区分不同的报警信息。

简单的说,有源蜂鸣器只能发出一种声音,因为它的频率是固定的。只能根据响声的不同间隔长短来区分。

例如,闹钟是:滴滴~滴滴~滴滴~。

有源只要通电就响了,我们只要控制好通电的时间就好。

#include "mbed.h"

PwmOut PWM1(PB_13);

int main()

{

    while(1)

   {

    PWM1 = 1;//响

    wait(0.1);//响0.1s

    PWM1 = 0;//不响

    wait(0.1);//不响0.1s

    PWM1 = 1;//再响

    wait(0.1);//响0.1s

    PWM1 = 0;//不响

    wait(0.6);//不响0.6s

   }

}//end main

以上就可以实现,滴0.1s滴0.1s  (0.6s后)滴0.1s滴0.1s  (0.6s后)滴0.1s滴0.1s

人耳听起来就是常见的闹钟 滴滴~滴滴~滴滴~的效果。

 

这里PWM波,换成DigitalOut也是一样的,PWM波并没有什么特殊的意义。

我只是测试PWM有什么影响没有。

改变PWM波的频率,蜂鸣器的声调没有变化。

改变PWM波的大小,例如PWM1=0.5,会发出那种不稳定的颤抖的声效,没什么用。

所以有源蜂鸣器只是能响而已,声音固定的。

电平=1就响,=0不响。


关键字:STM32  有源蜂鸣器 引用地址:STM32与有源蜂鸣器

上一篇:STM32与无源蜂鸣器
下一篇:STM32的Systick系统滴答定时器

推荐阅读最新更新时间:2024-03-16 15:43

关于STM32的几点重要内容
主要内容: 1.为什么STM32F0没有AFIO时钟呢? 2.关于STM32中的各种电源 3.IAR中如何查看外设寄存器 4.关于问问题 1为什么STM32F0没有AFIO时钟呢? 前面写过一篇文章【 关于STM32时钟配置的那些坑 】里面有讲述关于什么时候开启AFIO时钟,有朋友下来去研究AFIO时钟时发现STM32F0芯片中没有AFIO时钟,于是就问了这么一个问题:你好,为什么STM32F0没有AFIO时钟呢? 答案就是STM32F0没有AFIO时钟。那又是怎样实现重定义这个功能的呢? 实现重定义功能也是由特定的控制器完成的,需要使用某个控制器,就需要开启对应的时钟。 而STM32F1就是由“Alterna
[单片机]
关于<font color='red'>STM32</font>的几点重要内容
使用STM32测量频率和占空比的几种方法
使用平台:官方STM32F429DISCOVERY开发板,180MHz的主频,定时器频率90MHz。 相关题目: (1)测量脉冲信号频率f_O,频率范围为10Hz~2MHz,测量误差的绝对值不大于0.1%。(15分) (2)测量脉冲信号占空比D,测量范围为10%~90%,测量误差的绝对值不大于2%。(15分) 思路一:外部中断 思路:这种方法是很容易想到的,而且对几乎所有MCU都适用(连51都可以)。方法也很简单,声明一个计数变量TIM_cnt,每次一个上升沿/下降沿就进入一次中断,对TIM_cnt++,然后定时统计即可。如果需要占空比,那么就另外用一个定时器统计上升沿、下降沿之间的时间即可。 缺点:缺陷 显而易见 ,当频率提高,
[单片机]
使用<font color='red'>STM32</font>测量频率和占空比的几种方法
STM32单片机GPIO口的学习
  GPIO:   STM32的(64引脚的)IO口一共有3个,分别是PA、PB、PC.   STM32的IO端口可以由软件配置成8种模式:   1,输入浮空   2,输入上拉   3,输入下拉   4,模拟输入   5,开漏输出   6,推挽输出   7,推挽复用功能   8,开漏复用功能   STM32的每个IO端口都有7个寄存器来控制。他们分别是:配置模式的2个32位的端口配置寄存器CRL和CRH;2个32位的数据寄存器IDR和ODR;1个32位的置位/复位寄存器BSRR;一个16位的复位寄存器BRR;1个32位的锁存寄存器LCKR;我们常用的IO端口寄存器只有4个:CRL、CRH、IDR、ODR。   注意(在配置ST
[单片机]
stm32 系统滴答定时器
使用步骤: 1.设置SysTick定时器的时钟源。 2.设置SysTick定时器的重装初始值 --中断要打开中断使能 3.清零SysTick定时器当前计数器的值 4.打开SysTick定时器 库函数:SysTick.c 初始化函数: void SysTick_Init(u8 SYSCLK) { SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8); fac_us = SYSCLK / 8; //SYSCLK的8分频保存1us所需的计数次数 fac_ms = (u16)fac_us*1000; //每个ms需要的systick时钟数
[单片机]
STM32中NVIC_SystemReset()函数的作用?什么时候用?
STM32软件复位有两种方式 (1)方式一:NVIC_SystemReset()函数用来复位STM32. 注意1:从SYSRESETREQ 被置为有效,到复位发生器执行复位命令,往往会有一个延时。在此延时期间,处理器仍然可以响应中断请求。但我们的本意往往是要让此次执行到此为止,不要再做任何其它事情了。所以,最好在发出复位请求前,先把FAULTMASK置位。需要加上这句:__set_FAULTMASK(1);意思是关闭所有中断的意思,目的是在执行NVIC_SystemReset()复位函数过程中不被中断所打断。两个函数执行后系统复位重新执行代码,包括之前所配置好的外设寄存器也都回到复位状态。如下: __set_FAULTMASK
[单片机]
STM32单片机的ADC多通道采样
一 单通道采样 参考资料: 《STM32库开发实战指南》 原理性质的东西还是少讲,因为上面那本书里面讲解的很详细了,直接来看硬件电路图 这里使用的是3362电位器(10K),即用STM32来测量PB0和GND两端的电压,这样的电路设计比较简单也容易理解,但是存在一定的弊端,下面给出《STM32库开发实战指南》上面配套的硬件电路图 如果设计电路图的话,可以参考这种思路。 我的收获 1 引脚初始化的时候需要注意 每一个ADC通道都对应一个GPIO引脚,看图中的ADC123_IN10,表示这个引脚(PC0)可以配置为ADC1的通道10,或者是ADC2的通道10,或者是ADC3的通道10,这个地方非常重要,涉及到后面ADC初
[单片机]
<font color='red'>STM32</font>单片机的ADC多通道采样
stm32的gpio模拟iic小记
在用stm32的模拟iic读取mpu6050时发现读whoami寄存器为0xd1,而正确的值应该为0x68,导致这个问题基本上有以下几个原因: 1、如果是杜邦线连接,线太长且线质量不好会导致这个问题; 2、上拉电阻不合适,上拉电阻不合适的话会导致iic两根线上的波形不好; 3、gpio的输出模式不对,推挽输出可以改为浮空输出。 4、波形不好 解决办法: 更换短而质量好的线; 选择手册推荐的上拉电阻; gpio改为浮空输出,作为i2c的gpio必须为这种模式; 调整时序,是波形符合要求 我遇到的是情况1,换了两根线好了。
[单片机]
怎么使用C语言控制硬件
C语言的应用编程在单片机的领域占了很大一部分,使用的比较多的51单片机和STM32单片机都可以使用MDK软件编写固件。 单片机烧写了固件后可以点亮LED灯,可以驱动ADC检测电压,也可以驱动蜂鸣器发声,这就是简单地控制硬件。稍微复杂一点的,可以驱动NRF2401进行无线的连接,也可以使用ESP8266这类wifi芯片连接网络。 接下来,简单地讲讲如何使用C语言控制硬件。 1、电路连接 简单的模块可以直接使用高低电平来控制,比如红外线发射模块,当你在驱动引脚上的电压达到3.3v,就能发出红外线;然后将电平设置为0v,红外线发射就停止了。 一般而言,单片机的引脚输出电压能够达到3.3v,也是可以点亮红外线LED,但是可能会导致
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved