




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
蜂鸣器包结 蜂鸣器包应用示 使用开发注意事 错误!未定义书签蜂鸣器包结等函数。但直接使用API函数编程,用户需要了解驱动的表及驱动的结构,然后打开 包的结构及组如图1.1所示,WindowsCE系统平台提供了蜂鸣器驱动程序,用户可以直接通过WindowsCE的API函数来控制蜂鸣器,但为了简化用户编程工作,epcBuzzerLib包在WindowsCE的API函数基础上进行了一层封装,提供了一套操作蜂鸣器的函数,用户通过图1.1epcBuzzerLib包的结epcBuzzerLib包共包含三个文件,epcBuzzerLib.h、epcBuzzerLib.LibepcBuzzerLib.h为epcBuzzerLib包的头文件,包中的所有函数都在该文件静态,需将该文件拷贝到工程下,并在开发编译器中设置外部库文件为epcBuzzerLib.dll为epcBuzzerLib包的动态文件,此文件中包含了上的应用程序下。图1.2epcBuzzerLib包的组 包的接口函数说epcBuzzerLib包提供了如表1.1所示的函数来操作系统平台上的蜂鸣器,各函数的表1.1epcBuzzerLib包接口函对应GPIO电平及蜂鸣时间的设置工作,其使用范例见程序1.1,示例其接口函数的调1.2蜂鸣器蜂鸣函BOOLepcBuzzerOn(DWORD阻塞,则可以使用该函数的异步版本epcBuzzerAsyncOn(),见表1.5。程序1.1epcBuzzerOn函数使用范if(bRet==FALSE){}/*Buzzer止蜂鸣的工作,程序1.2示例了该函数的使用。1.3停止蜂鸣器蜂鸣函BOOL无和程序1.2epcBuzzerOff函数使用范if(bRet==FALSE){}/*Buzzerstops蜂鸣器的控制GPIO的状态,以反映蜂鸣器是否处于状态,函数及参数说明如表1.4所示,该函数的使用范例见程序1.3所示。表1.4蜂鸣器状DWORD无和无程序1.3epcBuzzerGetStatus函数使用范DWORDDWORDif(dwStatus>1){MessageBox(_T("Thestatefailedtogetthebuzzer!"));}if(dwStatus==/*GetbuzzerMessageBox(_T("Thebuzzeris }elseMessageBox(_T("Thebuzzerisdisabled}1.5蜂鸣器蜂鸣(异步版本BOOLepcBuzzerAsyncOn(DWORD数来获取执行结果,见表1.7。如果应用程序不需要关心蜂鸣器蜂鸣完成结果,则不需要设程序1.4epcBuzzerAsyncOn函数使用范if(bRet==FALSE){}/*Buzzer500milliseconds鸣叫次数,函数及参数说明如表1.6所示,函数的使用范例如程序1.5所示。1.6蜂鸣器鸣叫指定次BOOLepcBuzzerBeeps(DWORDdwTimes,DWORDDWORD过调用来获取执行结果,见表1.7。如果应用程序不需要关心蜂鸣器鸣叫完成结果,则不需要设置回程序1.5epcBuzzerSetCallBackFunc函数使用范bRet=epcBuzzerBeeps(5,200,200);if(bRet==FALSE}/*Setthebuzzerbeepscompletedcallbackfunction!/*Thebuzzerbeepsfivetimes1.7设置蜂鸣器异步操作完成回调函数指 结果,TRUE表示执行成功,FALSE表示执行失败。如果函数指针是无和无程序1.6epcBuzzerSetCallBackFunc函数使用范voidBuzzerNotify(BOOL{if}else}}void{bRet=epcBuzzerBeeps(5,200,200);…设置蜂鸣器鸣叫完成回调函数}1.8epcBuzzerGetVersionInfo函DWORD*dwVersion:当前包版本和无程序1.7epcBuzzerGetVersionInfo函数使用范constconstWCHAR*pLibName=NULL;DWORDdwVersion;如表1.9所示,描述可直接调用蜂鸣器驱动IOCTL的函数接口,程序1.8示例了1.9epcBuzzerIoctl函BOOLepcBuzzerIoctl(DWORDdwIoctl,PDWORDpucBufIn,DWORDdwLenIn,pucBufOut,DWORD动DWORD PDWORDpucBufIn:IOCTL函数的输入bufferDWORDdwLenIn :IOCTL函数的输入SizePDWORDpucBufOut:IOCTL函数的输出bufferDWORDdwLenOut:IOCTL函数的输和无程序1.8epcBuzzerIoctl函数使用范ifif{}有源蜂鸣器应用示例本示例将会详细演示如何利用VisualStudio2005和提供的epcBuzzerLib包编写一2.1有源蜂鸣器示例界PCWindows中打开VisualStudio2005 图2.2包相关文件到工 设置epcBuzzerLib.lib库。在VS2005中选择菜单Project→Properties,在弹出的框中选择“ConfigurationsProperties”,再选择Link选项卡,再选择Input,点的编辑框中输入epcBuzzerLib.lib,最后单击OK关闭框。2.3工程属性设2.4为工程添加库函在BuzzerDemoDlg.cpp文件中用#include命令引入epcBuzzerLib库的头文件#include#include"epcBuzzerLib2.1ID号及作ID2.5工程建立完成后的界程序2.1“蜂鸣器蜂鸣”按键单击事件代**Function ** Buzzer**input **output **Returned voidCBuzzerDemoDlg::OnBzrOn(){//TODO:AddyourcontrolnotificationhandlercodehereBOOLbRet;if(bRet==FALSE){}/*Buzzer}程序2.2“蜂鸣器”按键单击事件代**Function ******input**output**Returned 无voidCBuzzerDemoDlg::OnBzrOff(){//TODO:AddyourcontrolnotificationhandlercodehereBOOLbRet;if(bRet==FALSE){}/*}程序2.3“读蜂鸣器状态”按键单击事件代**Function ** **input **output **Returned voidCBuzzerDemoDlg::OnBzrStatus(){//TODO:AddyourcontrolnotificationhandlercodehereDWORDdwStatus;if(dwStatus>1){}if(dwStatus==}else/*读蜂鸣器状 }}添加“蜂鸣器鸣叫5次”按键单击事件代码,如程序2.4所示。OnBzrBeeps()上返回,如果返回结果为FALSE则提示蜂鸣器鸣叫失败的消息框。程序2.4“蜂鸣器鸣叫5次”按键单击事件代**Function ** **input **output **Returned voidCBuzzerDemoDlg::OnBzrBeeps(){//TODO:AddyourcontrolnotificationhandlercodehereBOOLbRet;if(bRet==FALSE){}/*蜂鸣器鸣5}WindowsCEPCWindows的ActiveSync在VisualStudio2008的中,选择开发平台SDK,然后选择菜单“Build”→“DeploySolution”,工程开始编译。如果编译成功,将自动本示例的可执行文件BuzzerDemo.exe到开发板上的“设备\ProgramFiles\BuzzerDemo”下。将epcBuzzerLib包的epcBuzzerLib.dll文件到WindowsCE操作系统的“我的设备\ProgramFiles\BuzzerDemo”下,如图2.6所示。图2.6epcBuzzerLib到WindowsCE在WindowsCE操作系统的“设备\ProgramFiles\BuzzerDemo”中,可以找到可执行文件BuzzerDemo.exe文件,运行该文件,界面如图2.7所示。2.7BuzzerDemo.exe运行界2.8蜂鸣器蜂鸣失败消息2.9蜂鸣器状态消息无源蜂鸣器应用示例本示例将会详细演示如何利用VisualStudio2005和提供的epcBuzzerLib包编写一框有2个按键和1个滚动条如图3.1所示,可以实现使蜂鸣器蜂鸣、蜂鸣器蜂鸣和调节频率控制蜂鸣声响3.1无源蜂鸣器示例界PCWindows中打开VisualStudio2005 图3.2包相关文件到工 设置epcBuzzerLib.lib库。在VS2008中选择菜单Project→Properties,在弹出的框中选择“ConfigurationsProperties”,再选择Link选项卡,再选择Input,点在上面的编辑框中输入epcBuzzerLib.lib,最后单击OK关闭框。3.3工程属性设3.4为工程添加库函在BuzzerDemoDlg.cpp文件中用#include命令引入epcBuzzerLib库的头文件#include#include"epcBuzzerLib3.1ID号及作ID3.5工程建立完成后的界程序3.1“Start”按键单击事件代voidvoid{if {MessageBox(_T("BuzzerStartBeepfailed!"));}}程序3.2“Stop”按键单击事件代voidvoid{if {MessageBox(_T("BuzzerStartBeepfailed!"));}}程序3.3滑动条事件代{DOUBLEdwFreq;DOUBLEdbFreq;dwBuff[0]=dwFreq=m_slider.GetPos();dbFreq=dwFreq/dwBuff[1]=if{ }*pResult=}程序3.4框初始化代BOOLBOOL{//Settheiconforthisdialog.Theframeworkdoesthis//whentheapplication'smainwindowisnotadialogSetIcon(m_hIcon,TRUE); //SetbigiconSetIcon(m_hIcon,FALSE); //Setsmallicon*ReadingsoftwarelibraryversionDWORDdwVersion=0;DemoInfo=DemoInfo+L"---("+L"LibInfo:"+LibInfobRet=epcBuzzerOpen();if(bRet==FALSE){returnFALSE;}/*OpenBuzzer//滑动条拖动范围为~140002^3=8;2^14=16384故它的调节范围为-pcbtnStart=(CButtonpcbtnStop=(CButtonreturnTRUE;//returnTRUEunlessyousetthefocustoa}添加Timer3.63.6ontimer函程序3.5ontimer函数代(14)(14)添 {DWORDif { }}图3.7添加框销毁事程序3.6OnDestroy函数代voidvoid{}WindowsCEPCWindows的ActiveSync在VisualStudio2005的中,选择开发平台SDK,然后选择菜单“Build”→“DeploySolution”,工程开始编译。如果编译成功,将自动本示例的可执行文件BuzzerDemo.exe到开发板上的“设备\ProgramFiles\BuzzerDemo”下。将epcBuz
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 预防溺水课件
- 小孩动手能力培训
- 顺产产后伤口护理
- 项目经理培训课件工程
- 项目工程投资与融资课件
- 安全培训6分钟试讲课件
- 音乐说课课件下载
- 市政污水管网改造项目数字化方案
- 城镇污水管网建设项目质量管理方案(范文模板)
- 2025年航天器结构系统项目建议书
- 东北林业大学20-21高数A2期末考试含答案
- 暨南大学《微观经济学》2023-2024学年第一学期期末试卷
- 原理及适用范围 火试金法
- GB/T 44570-2024塑料制品聚碳酸酯板材
- 新疆2020年中考英语真题(含答案)
- 北京市东城区东直门中学2024-2025学年七年级上学期分班考数学试卷
- 内蒙古地区历年中考语文现代文阅读之非连续性文本阅读14篇(含答案)(2003-2023)
- 国家开放大学本科《理工英语3》一平台机考总题库2025珍藏版
- 防水包工包料合同范本
- 生物基胶粘剂的绿色合成
- 一年级下册《读读童谣和儿歌》试题及答案共10套
评论
0/150
提交评论