feixiang20 发表于 2018-12-7 15:45:59

如何针对不同的事件让蜂鸣器响的次数不一样

在stm32中,如何针对不同的事件让蜂鸣器响的次数不一样?
看到有人的程序,怎样来理解?
用的是定时器:假设响500mS静500mS
有一常量, count
函数Beep(int times)
{
    count = times * 10 - 5; //*10-5与定时器周期有关
    使能蜂鸣器
    开定时器中断
}

100mS定时器中断服务函数
{
    times--;
    if(0 == times)
      关定时器中断
    if(times%5 == 0)
      蜂鸣器状态取反
}

奏奏奏 发表于 2018-12-7 20:00:45

本帖最后由 奏奏奏 于 2018-12-7 20:03 编辑

可以通过下面3种:
(1)调节定时器定时值,改变蜂鸣器输出频率;
(2)PWM改变占空比;
(3)像楼主说的响一段时间停一段时间(秒级)
楼主没有说是有源还是无源蜂鸣器,上面3种都可以试一下效果,毕竟有些参数调整后人耳分辨不出来也是白折腾。

羽非雨 发表于 2018-12-8 10:10:23

这个可以用写个接口函数,传响的次数进去。

modu8888 发表于 2018-12-8 11:01:25

我使用的有源蜂鸣器,在多任务的环境下,使用状态机的方法分析蜂鸣器的各种工作状态。
页: [1]
查看完整版本: 如何针对不同的事件让蜂鸣器响的次数不一样