一、有缘蜂鸣器和无缘蜂鸣器
所谓的有源蜂鸣器是指蜂鸣器内部内置振荡电路,一通电就能响。但发生频率固定,音色单一;无源蜂鸣器内部不含振荡源,内部结构相当于电磁场扬声器,可以通过给他输出一定频率的信号才能发声。人耳能听到的频率范围在20Hz–20kHz之间,通过STM32的GPIO引脚快速切换高低电平输出就能实现无源蜂鸣器的发声,切换的频率不同,发出的音调就不一样。需要外部提供2~5khz左右的方波。
二、"哆瑞咪发…"的实现
每个音节都有不用的频率可以发出不同的声音
//Do Re Mi Fa So La Si
根据 f=72MHZ/[(arr+1)(psc+1)]公式(频率确定后,再通过寄存器TIMX->CCRY寄存器来确定通道Y的占空比。计数器向上计数时,当计数器的值比CCR寄存器值小时输出低电平,比它大时就输出高电平,高电平占总周期的时间就是占空比。)来实现发出不同的音调。
三、程序
1.timer.c文章来源:https://www.toymoban.com/news/detail-432874.html
1.1//通用定时器3中断初始化
//这里时钟选择为APB1的2倍,而APB1为36M
//arr:自动重装值。
//psc:时钟预分频数
//这里使用的是定时器3!文章来源地址https://www.toymoban.com/news/detail-432874.html
void TIM3_Int_Init(u16 arr,u16 psc)
{
TIM_TimeBaseInitTypeDef TIM_TimeBas
到了这里,关于无缘蜂鸣器——stm32定时器PWM实现控制发出“哆瑞咪发…“七个音及简单音乐的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!