- 1、本文档共13页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32F103通用定时器PWM应用例程--蜂鸣器演奏乐曲
STM32F103通用定时器PWM应用例程:蜂鸣器演奏乐曲
说明:本例程是将流明LM3SLib_Timer.pdf文档中的例程9及例程10(PWM应用:蜂鸣器演奏乐曲),移植到STM32F103上。
二.流明LM3SLib_Timer.pdf例程9及例程10的拷贝:
例程9. Timer PWM应用:蜂鸣器发声
如图1.1所示,为EasyARM1138开发板上的蜂鸣器驱动电路。蜂鸣器类型是交流蜂鸣器,也称无源蜂鸣器,需要输入一列方波才能鸣响,发声频率等于驱动方波的频率。
图1.1 蜂鸣器驱动电路
程序清单1.9是Timer模块16位PWM模式的一个应用,可以驱动交流蜂鸣器发声,运行后蜂鸣器以不同的频率叫两声。其中buzzer.h和buzzer.c是蜂鸣器的驱动程序,仅有3个驱动函数,用起来很简捷。
程序清单1.9 Timer PWM应用:蜂鸣器发声
文件:main.c
#include systemInit.h
#include buzzer.h
// 主函数(程序入口)
int main(void)
{
jtagWait(); // 防止JTAG失效,重要!
clockInit(); // 时钟初始化:晶振,6MHz
buzzerInit(); // 蜂鸣器初始化
buzzerSound(1500); // 蜂鸣器发出1500Hz声音
SysCtlDelay(400* (TheSysClock / 3000)); // 延时约400ms
buzzerSound(2000); // 蜂鸣器发出2000Hz声音
SysCtlDelay(800* (TheSysClock / 3000)); // 延时约800ms
buzzerQuiet( ); // 蜂鸣器静音
for (;;)
{
}
}
文件:buzzer.h
#ifndef __BUZZER_H__
#define __BUZZER_H__
// 蜂鸣器初始化
extern void buzzerInit(void);
// 蜂鸣器发出指定频率的声音
extern void buzzerSound(unsigned short usFreq);
// 蜂鸣器停止发声
extern void buzzerQuiet(void);
#endif // __BUZZER_H__
文件:buzzer.c
#include buzzer.h
#include hw_types.h
#include hw_memmap.h
#include sysctl.h
#include gpio.h
#include timer.h
#define PART_LM3S1138
#include pin_map.h
#define SysCtlPeriEnable SysCtlPeripheralEnable
#define GPIOPinTypeOut GPIOPinTypeGPIOOutput
// 声明全局的系统时钟变量
extern unsigned long TheSysClock;
// 蜂鸣器初始化
void buzzerInit(void)
{
SysCtlPeriEnable(SYSCTL_PERIPH_TIMER1); // 使能TIMER1模块
SysCtlPeriEnable(CCP3_PERIPH); // 使能CCP3所在的GPIO端口
GPIOPinTypeTimer(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初值
TimerMatchS
您可能关注的文档
- QJZ-1600/1140-4说明书(FB1404033-34).doc
- QC课题-降低送货时间.doc
- QJZ-300-1140J矿用隔爆兼本质安全型电流检测真空磁力起动器.doc
- QJZ-400.1140使用说明书.doc
- QJZ400双速.ppt
- qPCR技术概述.ppt
- QPSK数字信号频带传输系统的设计与建模.ppt
- QQ空间透明头像制作.pptx
- QPSK和OQPSK调制.ppt
- QST30 发动机介绍.ppt
- 民航职业技能鉴定考前冲刺练习题附参考答案详解(A卷).docx
- 民航职业技能鉴定考前冲刺练习题附完整答案详解【夺冠系列】.docx
- 基于多媒体技术的初中语文阅读教学效果研究教学研究课题报告.docx
- 虚拟现实技术驱动下的小学语文沉浸式AI教育资源互动策略研究教学研究课题报告.docx
- 民航职业技能鉴定考前冲刺试卷【综合卷】附答案详解.docx
- 2025年运动营养食品市场消费趋势与可持续发展创新策略.docx
- 小学语文课堂中融入生成式AI的互动教学实践研究教学研究课题报告.docx
- 小学英语听说能力培养:区块链技术在个性化学习过程追踪中的应用教学研究课题报告.docx
- 2025年中国粉尘防爆检修电源插座箱行业市场调查、投资前景及策略咨询报告.docx
- 民航职业技能鉴定考前冲刺练习(满分必刷)附答案详解.docx
文档评论(0)