1 / 13
文档名称:

STM32F103定时器PWM应用例程蜂鸣器演奏乐曲解析.doc

格式:doc   大小:215KB   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

STM32F103定时器PWM应用例程蜂鸣器演奏乐曲解析.doc

上传人:春天资料屋 2022/7/21 文件大小:215 KB

下载得到文件列表

STM32F103定时器PWM应用例程蜂鸣器演奏乐曲解析.doc

相关文档

文档介绍

文档介绍:STM32F103通用定时器PWM应用例程--蜂鸣器演奏乐曲解析
STM32F103通用定时器PWM应用例程--蜂鸣器演奏乐曲解析
1 / 13
STM32F103通用定时器PWM应用例程--蜂鸣器演奏乐曲解析
STM3er(CCP3_PORT, CCP3_PIN); // 设置相关管脚为 Timer 功能
TimerConfigure(TIMER1_BASE, TIMER_CFG_16_BIT_PAIR | // 配置 TimerB 为16位PWM
TIMER_CFG_B_PWM);
}
蜂鸣器发出指定频率的声音
usFreq是发声频率,取值 ( 系统时钟 /65536)+1 ~ 20000,单位: Hz
void buzzerSound(unsigned short usFreq)
{
unsigned long ulVal;
if ((usFreq <= TheSysClock / 65536UL) || (usFreq > 20000))
{
buzzerQuiet( );
}
else
{
GPIOPinTypeTimer(CCP3_PORT, CCP3_PIN); // 设置相关管脚为 Timer 功能 ulVal = TheSysClock / usFreq;
TimerLoadSet(TIMER1_BASE, TIMER_B, ulVal); // 设置 TimerB 初值
TimerMatchSet(TIMER1_BASE, TIMER_B, ulVal / 2); // 设置 TimerB 匹配值
TimerEnable(TIMER1_BASE, TIMER_B); // 使能 TimerB 计数
}
}
蜂鸣器停止发声 void buzzerQuiet(void)
{
TimerDisable(TIMER1_BASE, TIMER_B); // 禁止 TimerB 计数 GPIOPinTypeOut(CCP3_PORT, CCP3_PIN); // 配置 CCP3管脚为 GPIO输出
GPIOPinWrite(CCP3_PORT, CCP3_PIN, 0x00); // 使CCP3管脚输出低电平
}
例程 10. Timer PWM 应用:蜂鸣器演奏乐曲
程序清单 Timer 模块 16位 PWM 模式的一个应用,能驱动交流蜂鸣器演奏一首动听的乐曲《化蝶》 (乐谱参见图 )。 "" 和 "" 是演奏乐曲的驱动程序。
STM32F103通用定时器PWM应用例程--蜂鸣器演奏乐曲解析
STM32F103通用定时器PWM应用例程--蜂鸣器演奏乐曲解析
3 / 13
STM32F103通用定时器PWM应用例程--蜂鸣器演奏乐曲解析
2
STM32F103通用定时器PWM应用例程--蜂鸣器演奏乐曲解析
STM32F103通用定时器PWM应用例程--蜂鸣器演奏乐曲解析
13 / 13
STM32F103通用定时器PWM应用例程--蜂鸣器演奏乐曲解析
图 乐谱《化蝶》
简谱是大众化的音乐记谱方式,比较容易理解和掌握。我们可以把一首乐谱(
score)看成是
由若干个基本的音符( note)单元组成。一个音符由音名和时值组成。音名就是低音、中音、高
音的 1234567(唱作 do re mi fa sol la si
),其本质是音符的发声频率。在头文件
"" 里,用
L1 ~ L7、 M1 ~ M7 、H1 ~H7 定义了低音、中音、高音所对应的发声频率。时值是音符的发声时
间长短,有全音符、二分音符、四分音符
??等等。音符可以后缀一个
“符点 ”,表示时值增加 1/2,
特殊地,二分音符加符点时用
“- ”代替圆点。参见表 的描述。
表 常见简谱音符示例
音 符
名 称
相对时值
5―――
全音符
T
5-
二分音符
T/2
5
四分音符
T/4
5
八分音符
T/8
5
十六分音符
T/16
5――
符点二分音符
T/2+T/4