单片机型号STM32H743,PWM信号控制无源蜂鸣器
蜂鸣器简介:根据输入信号种类可以把蜂鸣器分为有源蜂鸣器和无源蜂鸣器。有源蜂鸣器需要输入直流电,也就是简单的拉高引脚电平就可以响;无源蜂鸣器需要输入一定频率的方波信号才能响。
无源蜂鸣器实现思路:既然这个元器件需要输入一定频率的方波,就需要想办法产生这个方波。一个方案是通过ms或us定时器,拉高电平延时一段时间,再拉低电平延时一段时间,周期重复,产生方波。但是这个方案需要很多延时,MCU在延时期间只能干等着,浪费资源。另一个方案是通过定时器输出PWM信号。需要注意的是,先通过电路图找到控制蜂鸣器的MCU引脚,查找datasheet看这个引脚是否能复用为定时器。如下图我用的控制蜂鸣器的IO口是PI0,可以复用为TIM5通道4。只有能复用为定时器,才能通过方案2产出PWM信号。否则只能使用方案一。
那什么是PWM信号?
PWM信号简介:PWM,又称脉冲宽度调制,就是根据自己需要的频率和占空比输出定制方波。原理如下图所示,
以向上计数模式为例,定时器以固定频率从0开始计数,当计数值CNT=ARR时就归0重新开始计数;ARR的值越大,从0增加到ARR的时间越长,方波的周期就越长、频率就越小。所以ARR和输出方波的频率有关。
当计数值<CCRx时,该引脚输出低电平