经典串口调试助手源程序及串口通信设置dvhe.docx
《经典串口调试助手源程序及串口通信设置dvhe.docx》由会员分享,可在线阅读,更多相关《经典串口调试助手源程序及串口通信设置dvhe.docx(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、串口调试试助手源源程序及编程详详细过程程作者:龚龚建伟 20001.6.220可以任意意转载,但但必须注注明作者者和说明明来自hhttpp:/m,不得得作为商商用目次:1.建立立项目2.在项项目中插插入MSSCommm控件件3.利用用ClaassWWizaard定定义CMMSCoomm类类控制变变量4.在对对话框中中添加控控件5.添加加串口事事件消息息处理函函数OnnCommm()6.打开开和设置置串口参参数7.发送送数据如果你还还没有下下载源程程序,又又对本文文有兴趣趣,请立立即下载载在在众多网网友的支支持下,串串口调试试助手从从20001年55月211日发布布至今,短短短一个个月,在在全国
2、各各地累计计下载量量近50000人人次,在在近2000多个个电子邮邮件中,220多人人提供了了使用测测试意见见,更有有50多多位朋友友提出要要串口调调试助手手的源代代码,为为了答谢谢谢朋友友们的支支持,公公开推出出我最初初用VCC控件MMSCoomm编编写串口口通信程程序的源源代码,并并写出详详细的编编程过程程,姑且且叫串口口调试助助手源程程序V11.0或或VC串串口通讯讯源程序序吧,我我相信,如如果你用用VC编编程,那那么有了了这个代代码,就就可以轻轻而易举举地完成成串口编编程任务务了。(也也许本文文过于详详细,高高手就不不用看)开始吧:1.建立立项目:打开VVC6.00,建立立一个基基于对
3、话话框的MMFC应应用程序序SCoommTTestt(与我我源代码码一致,等等会你会会方便一一点);2.在项项目中插插入MSSCommm控件件选择择Proojecct菜单单下Addd TTo PProjjectt子菜单单中的 Commponnentts aand Conntrools选项,在在弹出的的对话框框中双击击Reggisttereed AActiiveXX Coontrrolss项(稍稍等一会会,这个个过程较较慢),则则所有注注册过的的ActtiveeX控件件出现在在列表框框中。 选择MMicrrosooft Commmunnicaatioons Conntrool, verrsioo
4、n 66.0,单单击Innserrt按钮钮将它插插入到我我们的PProjjectt中来,接接受缺省省的选项项。(如如果你在在控件列列表中看看不到MMicrrosooft Commmunnicaatioons Conntrool, verrsioon 66.0,那那可能是是你在安安装VCC6时没没有把AActiiveXX一项选选上,重重新安装装VC66,选上上ActtiveeX就可可以了),这时在CClasssViiew视视窗中就就可以看看到CMMSCoomm类类了,(注注意:此此类在CClasssWiizarrd中看看不到,重重构cllw文件件也一样样),并并且在控控件工具具栏Coontrro
5、lss中出现现了电话话图标(如如图1所所示),现现在要做做的是用用鼠标将将此图标标拖到对对话框中中,程序序运行后后,这个个图标是是看不到到的。3.利用用ClaassWWizaard定定义CMMSCoomm类类控制对对象打开CllasssWizzarddMMembber Viaariaablees选项项卡,选选择CSSCommmTeestDDlg类类,为IIDC_MSCCOMMM1添加加控制变变量:mm_cttrlCCommm,这时时你可以以看一看看,在对对话框头头文件中中自动加加入了/AFXX_INNCLUUDESS() #iinclludee mmscoomm.h /AAFX_INCCLUD
6、DES (这时时运行程程序,如如果有错错,那就就再从头头开始)。4.在对对话框中中添加控控件向主对对话框中中添加两两个编辑辑框,一一个用于于接收显显示数据据ID为为IDCC_EDDIT_RXDDATAA,另一一个用于于输入发发送数据据,IDD为IDDC_EEDITT_TXXDATTA,再再添加一一个按钮钮,功能能是按一一次就把把发送编编辑框中中的内容容发送一一次,将将其IDD设为IIDC_BUTTTONN_MAANUAALSEEND。别别忘记了了将接收收编辑框框的PrropeertiiesSttylees中把把Milltillinee和Veertiicall Sccrolll属性性选上,发发送
7、编辑辑框若你你想输入入多行文文字,也也可选上上Milltillinee。再打开CClasssWiizarrdMemmberr Viiariiablles选选项卡,选选择CSSCommmTeestDDlg类类, 为为IDCC_EDDIT_RXDDATAA添加CCStrringg变量mm_sttrRXXDatta, 为IDCC_EDDIT_TXDDATAA添加CCStrringg变量mm_sttrTXXDatta。说说明: m_sstrRRXDaata和和m_sstrTTXDaata分分别用来来放入接接收和发发送的字字符数据据。5.添添加串口口事件消消息处理理函数OOnCoomm()打开开Claa
8、ssWWizaardMeessaage Mapps,选选择类CCSCoommTTesttDlgg,选择择IDCC_MSSCOMMM1,双双击消息息OnCCommm,将弹弹出的对对话框中中将函数数名改为为OnCCommm,(好好记而已已)OKK。这个函函数是用用来处理理串口消消息事件件的,如如每当串串口接收收到数据据,就会会产生一一个串口口接收数数据缓冲冲区中有有字符的的消息事事件,我我们刚才才添加的的函数就就会执行行,我们们在OnnCommm()函数加加入相应应的处理理代码就就能实现现自已想想要的功功能了。请请你在函函数中加加入如下下代码:voidd CSSCommmTeestDDlg:Onn
9、Commm() / TOODO: Addd yyourr coontrrol nottifiicattionn haandller codde hheree VAARIAANT varriannt_iinp; COOleSSafeeArrray saffearrrayy_innp; LONNG llen,k; BYTTE rrxdaata20448; /设置BBYTEE数组 An 8-bbit inttegeerthhat is nott siigneed. CSttrinng sstrttempp; iif(mm_cttrlCCommm.GeetCoommEEvennt()=22) /事件件
10、值为22表示接接收缓冲冲区内有有字符 /以下下你可以以根据自自己的通通信协议议加入处处理代码码 vvariiantt_innp=mm_cttrlCCommm.GeetInnputt(); /读缓冲冲区 saffearrrayy_innp=vvariiantt_innp; /VVARIIANTT型变量量转换为为ColleSaafeAArraay型变变量 lenn=saafeaarraay_iinp.GettOneeDimmSizze(); /得到到有效数数据长度度 ffor(k=00;klenn;k+) ssafeearrray_inpp.GeetEllemeent(&k,rxddataa+k)
11、;/转换为为BYTTE型数数组 forr(k=0;kkMMesssagee Maaps,选选择类CCSCoommTTesttDlgg,选择择IDCC_BUUTTOON_MMANUUALSSENDD,双击击BN_CLIICKEED添加加OnBButttonMManuualssendd()函函数,并并在函数数中添加加如下代代码:voidd CSSCommmTeestDDlg:OnnButttonnMannuallsennd()/ TODDO: Addd yoour conntrool nnotiificcatiion hanndleer ccodee heereUUpdaateDDataa(TRR
12、UE); /读取取编辑框框内容mm_cttrlCCommm.SeetOuutpuut(CCOleeVarriannt(mm_sttrTXXDatta);/发送数数据运行程序序,在发发送编辑辑框中随随意输入入点什么么,单击击发送按按钮,啊啊!看看看,在另另一端的的串口调调试助手手(或别别的调试试工具)接接收框里里出现了了什么。如果你真真是初次次涉猎串串口编程程,又一一次成功功,那该该说声谢谢谢我了了,因为为我第一一次做串串口程序序时可费费劲了,那那时网上上的资料料也不好好找。开开开玩笑笑,谢谢谢你的支支持,有有什么好好东西别别忘了给给我寄一一份。最后说明明一下,由由于用到到VC控控件,在在没有安
13、安装VCC的计算算机上运运行时要要从VCC中把mmscoomm332.oocx、mmsvccrt.dlll、mffc422.dlll拷到到Winndowws目录录下的SSysttem子子目录中中(wiin20000为为Sysstemm32)龚建伟 20001.66.200什么是VVARIIANTT数据类类型?如如何使用用VARRIANNT数据据类型? 怎么么以十六六进制或或二进制制发送和和接收?如果还还想再深深入了解解,请看看:串口调试试助手源源程序及及编程详详细过程程(二)2001.8.26这是是更新后后适合本本文的源源程序(2001.8.25制作),如果还没有下载源程序,又对本文有兴趣,请
14、 立即下载(当然,你看完本文也可以自己做出来,这个程序是接着上一个做的,如果你没下载前面程序,则没必要再下载了,本程序全部包含)。8.发送送十六进进制字符符 在主对对话框中中加入一一个复选选接钮,IID为IIDC_CHEECK_HEXXSENND CCapttionn: 十十六进制制发送,再再利用CClasssWiizarrd为其其添加控控制变量量:m_ctrrlHeexSeend; 在CllasssVieew中为为SCoommTTesttDlgg类添加加以下两两个PUUBLIIC成员员函数,并并输入相相应代码码;/由于于这个转转换函数数的格式式限制,在在发送框框中的十十六制字字符应该该每两个
15、个字符之之间插入入一个空空隔/如:AA1 223 445 00B 000 229/CByyteAArraay是一一个动态态字节数数组,可可参看MMSDNN帮助iint CSCCommmTesstDllg:Strringg2Heex(CCStrringg sttr, CByyteAArraay &sennddaata)intt heexdaata,lowwhexxdatta;iint hexxdattaleen=00;innt llen=strr.GeetLeengtth();seendddataa.SeetSiize(lenn/2);foor(iint i=00;i=leen)bbreaak;
16、llstrr=sttrii;hhexddataa=CoonveertHHexCCharr(hsstr);loowheexdaata=ConnverrtHeexChhar(lsttr);if(heexdaata=166)|(loowheexdaata=166)bbreaak;eelseehexxdatta=hhexddataa*166+loowheexdaata;i+;seendddataaheexdaatallen=(ccharr)heexdaata;hexxdattaleen+;sennddaata.SettSizze(hhexddataalenn);rretuurn hexxdattale
17、en;/这这是一个个将字符符转换为为相应的的十六进进制值的的函数/好多多C语言言书上都都可以找找到/功能:若是在在0-FF之间的的字符,则则转换为为相应的的十六进进制字符符,否则则返回-1chhar CSCCommmTesstDllg:ConnverrtHeexChhar(chaar cch)if(chh=0)&(ch=AA)&(cch=a)&(ch=ff)retturnn chh-aa+110;eelsee reeturrn (-1);再将CCSCoommTTesttDlgg:OOnBuuttoonMaanuaalseend()修改改成以下下形式:voidd CSSCommmTeestDDl
18、g:OnnButttonnMannuallsennd()/ TODDO: Addd yoour conntrool nnotiificcatiion hanndleer ccodee heereUUpdaateDDataa(TRRUE); /读取取编辑框框内容iif(mm_cttrlHHexSSendd.GeetChheckk()CByyteAArraay hhexddataa;innt llen=Strringg2Heex(mm_sttrTXXDatta,hhexddataa); /此此处返回回的leen可以以用于计计算发送送了多少少个十六六进制数数m_cctrllCommm.SSetOOu
19、tpput(COlleVaariaant(hexxdatta); /发送送十六进进制数据据elssem_cctrllCommm.SSetOOutpput(COlleVaariaant(m_sstrTTXDaata);/发送送ASCCII字字符数据据现在,你你先将串串口线接接好并打打开串口口调试助助手V22.1,选选上以十十六制显显示,设设置好相相应串口口,然后后运行我我们这个个程序,在在发送框框中输入入00 01 02 03 A1 CC等等十六进进制字符符,并选选上以十十六进制制发送,单单击手动动发送,在在串口调调试助手手的接收收框中应应该可以以看到000 001 002 003 AA1 CC
20、C了。9.在接接收框中中以十六六进制显显示 这就容容易多了了:在主对对话框中中加入一一个复选选接钮,IIDC_CHEECK_HEXXDISSPLAAY CCapttionn: 十十六进制制显示,再再利用CClasssWiizarrd为其其添加控控制变量量:m_ctrrlHeexDiiapllay。 然后修修改CSSCommmTeestDDlg:OnnCommm()函数:voidd CSSCommmTeestDDlg:OnnCommm()/ TODDO: Addd yoour conntrool nnotiificcatiion hanndleer ccodee heereVVARIIANTT
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 经典 串口 调试 助手 源程序 通信 设置 dvhe
限制150内