蜂鸣器驱动

蜂鸣器原理图

由上图可知,蜂鸣器受管脚PA11控制;

PWM

PWM(脉冲宽度调制)是通过对一系列脉冲的宽度进行调制,输出所要的波形(包含形状以及幅值)。

        (1)频率:是指1秒内高低电平周期性出现的次数;

        (2)占空比:是指在一个周期内,信号处于高电平的时间占据整个信号周期的百分比。

管脚配置

由图可知,蜂鸣器所连接的管脚PA11可以做为TIM1_CH4使用,要让蜂鸣器工作只需要配置使能TIM1定时器的CH4通道输出PWM即可;

配置使能TIM1,让Channel4输出PWM,PA11管脚就被设置成TIM1_CH4功能模式了;

因为PWM会输出高低电平,防止其误发声音,设置GPIO下拉以防误发声音

 

设置频率、占空比

 

 

生成代码

在tim.c文件中添加蜂鸣器操作函数,其中times为蜂鸣器响几次,interval为蜂鸣器响、停的时间

/*添加蜂鸣器操作函数beep_start()实现,其中times为蜂鸣器响几次,interval为响、停的时间间�?????*/
void beep_start(uint8_t times,uint16_t interval)
{
	while(times--)
	{
		//start buzzer//
		if(HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_4)!=HAL_OK)
		{
			Error_Handler();
		}
		HAL_Delay(interval);
		//stop buzzer//
		if(HAL_TIM_PWM_Stop(&htim1,TIM_CHANNEL_4)!=HAL_OK)
		{
			//starting error//
			Error_Handler();
		}
		HAL_Delay(interval);

	}



}

在tim.h文件中添加蜂鸣器操作函数的声明

 

main.c文件中添加操作函数

/*USER CORE BEGIN WHILE*/
beep_start(2,300);
......
/*USER CORE END WHILE*/

运行测试后可听到蜂鸣器响两次 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值