3.STM32F407之HAL库——蜂鸣器

使用STM32CubeMX配置工程+MDKARM编写代码实现蜂鸣器控制

一、蜂鸣器简介

  蜂鸣器是一种一体化结构的电子讯响器,采用直流电压供电,广泛应用于计算机、打印机、复印机、报警器、电子玩具、汽车电子设备、电话机、定时器等电子产品中作发声器件。蜂鸣器主要分为压电式蜂鸣器和电磁式蜂鸣器两种类型。

  蜂鸣器的发声原理由振动装置和谐振装置组成,而蜂鸣器又分为无源他激型与有源自激型。

  无源他激型蜂鸣器的工作发声原理是:方波信号输入谐振装置转换为声音信号输出。

  有源自激型蜂鸣器的工作发声原理是:直流电源输入经过振荡系统的放大取样电路在谐振装置作用下产生声音信号。

  主要是要区分有源和无源的蜂鸣器,两种蜂鸣器的驱动方式是不一样的。有源蜂鸣器采用点平驱动(电平驱动又分为,高电平触发和低电平触发)、无源蜂鸣器采用PWM波驱动,频率越高音调就越高。而有源蜂鸣器的音调是固定的,因为频率是固定的。
  尤其自己做东西的时候,购买元器件,一定要看清楚是有源的还是无源的蜂鸣器。
  这里用的是高电平触发的有源蜂鸣器,给高电平就能响,低电平就关了。连接的引脚是PF8。

二、STM32CubeMX配置

配置

三、代码实现

  代码实现基本上就和LED灯一样。
  定义宏函数

//BEEP control
#define Beep_On     HAL_GPIO_WritePin(BEEP_GPIO_Port,BEEP_Pin,GPIO_PIN_SET)
#define Beep_Off    HAL_GPIO_WritePin(BEEP_GPIO_Port,BEEP_Pin,GPIO_PIN_RESET)
#define Beep_Toggle HAL_GPIO_TogglePin(BEEP_GPIO_Port,BEEP_Pin)

  在主函数中去写功能,验证蜂鸣器功能

  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */		
    /* USER CODE BEGIN 3 */
		Beep_On;//打开蜂鸣器
		for(int i=0;i<10;i++)
		{
			HAL_Delay(1000);//延时
		}
		Beep_Off;//关闭蜂鸣器
		for(int i=0;i<10;i++)
		{
			HAL_Delay(1000);//延时
		}
  }
  /* USER CODE END 3 */

  注意代码要放在 USER BEIN 和END之间,要不然重新用Cube生成工程的时候就会消失。

  感谢各位的浏览。鄙人水平有限,很多地方写的感觉差强人意,如果有不对的地方欢迎指正。

  • 8
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值