无源蜂鸣器可以根据输入信号的频率发出对应不同频率的声音,可以满足播放简单乐曲。
使用STM32定时器产生PWM波形,通过该波形驱动无源蜂鸣器,调整PWM波的频率即可改变蜂鸣器的发声频率。
音符的频率
其频率如下图所示:
我们只需让STM32按照简谱输入对应频率的PWM波即可。
//高音
#define H1 1046
#define H2 1175
#define H3 1318
#define H4 1397
#define H5 1568
#define H6 1760
#define H7 1976
//中音
#define D0 0
#define D1 523
#define D2 587
#define D3 659
#define D4 698
#define D5 784
#define D6 880
#define D7 988
//低音
#define M0 0
#define M1 261
#define M2 293
#define M3 329
#define M4 349
#define M5 392
#define M6 440
#define M7 493
使用PA5引脚与蜂鸣器连接
PA5引脚初始化:
static void TIMx_GPIO_Config(void)
{
/*定义一个GPIO_InitTypeDef类型