欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    VC++编写简单串口上位机程序.docx

    • 资源ID:6591953       资源大小:994.52KB        全文页数:17页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    VC++编写简单串口上位机程序.docx

    1、VC+编写简单串口上位机程序VC+编写简单串口上位机程序2010 年 4 月 13 日 10:23:40串口通信,MCU艮PC通信经常用到的一种通信方式,做界面、写上位机程序的编程语言、编译环境等不少, VB C# LABVIEW等等,我会的语言很少, C语言用得比较多,但是还没有找到如何用 C语言来写串口通信上位机程序的资料,在图书管理找到了用 VC+编写串口上位机的资料,参考书籍,用自己相当蹩脚的 C+写出了一个简单的串口上位机程序,分享一下,体验一下单片机和 PC通信的乐趣。编译环境:VC+6.0操作系统:VMWare虚拟出来的 Windows XP程序实现功能:1、PC初始化COM1口

    2、,使用n81方式,波特率57600与单片机通信。PC的COMH编号可以通过如下方式修改:当然也可以通过上位机软件编写, 通过按钮来选择 COM端 口号,但是此次仅仅是简单的例程,就没有弄那么复杂了。 COM1口可用的话,会提示串口初始化完毕。否则会提示串口已经打开Port already open ,表示串口已经打开,被占用了。2、点击开始转换,串口会向单片机发送 0xaa,单片机串口中断接收到 0xaa后启动ADC转换一次,并把转换结果 ADCL ADCH共两个字节的结果发送至 PC, PC进行数值转换后在窗口里显示。(见文章末尾图)3、为防止串口被一只占用,点击关闭串口可以关闭 COM1供

    3、其它程序使用,点击后按钮变为打开串口,点击可重新打开 COM1程序的编写:1、 打开VC+6.0建立基于对话框的 MFC应用程序Test,文件 工程|工作区|莽它文挡|QATL COM AppWiFflM3Cluster Resource Type Wh弟d 賞iCuHmm AppWi ?qrd Si予gi*亦买 Plrnjftct慟DevStudio Add in Wizard FKlcndcri Stored Proc Wizard ISAR Dd訓斂n W1砂吋Malcefiki*MFC AdiveX CcnlrtlWizard hdFC App舸注乂巴J| New DaljatiBSL

    4、e SA/iza nt 祥 UR lit/Project 于1 Win垃 Application 二Wind? Consale Application Ji) Win3? DynnimiLinlc Library 秽Win彳2 Sltic Librery工程名椒眇 tt位邸”创建新的工作空间曲- Er : a I 1 -丄- J r 沿,!,”:已訓ir T lE Ir I IM甲引曰:Win32FC应用程序向导-歩玄FC应用程序向导-歩玄您要创建的应用程序类型是:您要创建的应用程序类型是:厂单文档圈-多重文档IM 僅蕊本对卷框回:多重文档(MJ|7文档匱看体系结构支持世)您的资源使用的语言是

    5、:中文0 APPWZCHS.DLLFC商用稈序向导-步舉2 # A您是否希望包含:咲于“对话框厂上下文相关帮助P 3D外观 您希望包含什么其他支持?厂自动撫作鸟P :! 一 W - Si .x荫如世昭Jte佚回 您希望包含WOSA支持吗?厂 Windows Sock&ts |W|对恬框的标题量test1 Microsoft Developer Studio胪1胡珥雷加 呦門皿i lgj,IFC舟聊稈序向导-步骤d井哲步您喜欢的风格是:fi iuajiii uii 1 ia i111,&财FC标進:r V/mdows资源管理器样式您希望生成源文件备注吗?是皿广否0Q您希望使用MFC库吗?金作为共

    6、享的DLL厂作为静态的DLL2、在项目中插入 MSCom控件:工程- 增加到工程-Components and Controls- 双击Registered ActiveX Con trols- 选择 Microsoft Communi cati ons Con trol, vers ion6.0-I nsert ,按默认值添加,你会发现多了个电话图标,这是增加后串口通信控件。矯人 工程 组建 工具 曾口 稲助CoKponnt and Coxiirpls1选择要插入到工程的组件査揣BS)(I): |匚)耳昨iHtwrwd Actiy曲匚皿trolw刁 4=丝古IjTk3、删除确认、取消和提示框

    7、,添加 “电话”、进程、静态文本、按钮、编辑框,拖动添加的控件,根据喜好布局。4、右击编辑框Edit选择属性,在样式里设置,勾选多行、垂直滚动,其它可按默认值。右击静态文本 Text选择属性,在常规设置里,修改标题。右击按钮PushButton选择属性,在在常规设置里,修改标题。5、查看-建立类向导 MFCCIassWizard-Member Viariable疆曲口 僮eebek嚓Ife日HH,选择 ClassName 为 CTestDIg左件修改后界面如下,程序写出来运行时 “电话”标志会自动消失。的类,Control ID 为MSC0MM1双击它,为它添加控制变量 m_comm。类似的,

    8、选择IDC BUTTON添加控制变量 m serial(建立类向导也可以右击然后在弹出的快捷菜单里选择建立类向导)Class fjarnelttst 耳 |CTes1Dlg叭怙6101”九 ZV.yestVestf)lg.cppPioject:Message Maps Member Variables Aulomstion ActiveX Events Class InfoClass AAme:te st 耳 CT e stD I g王、$ 全部组件,然至此,基本框架已经出来了,编译后运行可以看到如下所示的界面。后组建- 执行)存 开嗚转换Rill=! 卫丄ll打开串口6、点击左侧的视图窗口,

    9、可以在三种模式下切换,第三个是打开我们的源代码窗口,个是类,第二个是窗体的资源视图。主一 _ zXb|置Ft巳乩言FilEtcst.tpp FpuFIJI n _rnn选择File View ,展开test files-Header Files, 打开testDIg.h ,在全局变量下添加如下代码,然后保存:int gllen; 定义整型标量gllen,用于记录接收数据的个数CProgressCtrl * pbar; / 指向进度条的指针,用于操作进度条CStri ng strRXDdata; / 编辑框显示的文本,记录历次转换值/ Constructionpublic:CTestDLq(CV

    10、n / standard constructai-/ Dialog (Mtd /OFX_DfiTfi(CItOlg) enun TbD IOD_TEST_bJ ALOC J; CButton rr s(*rijl;nis-x- n i 一 一亠7、 点击 Recourse View,展开 test recourses-Dialog ,双击 IDD_TEST_DIALOG 编辑我 们的主界面对话框。VC会进入源码编辑窗口,这个函数是用来处理串口事件的,当 PC串口接收到数据时,会产生一个数据缓冲区有数据的消息事件, 然后调用执行这个函数。添加如下代码,进行数据处理,窗口更新等操作:VARIANT

    11、 variant1; 定义VARIANT型变量,用于存放接收到的数据COIeSafeArray safearray;/ 定义 safearray 型变量LONG len ,k; 定义长整型变量 len ,kBYTE rxdata2048; 定义 BYTE型数组CStri ng stremp1,stremp2; 定义两个字符串if(m_comm1.GetCommEvent()=2)/ 判断引起 OnComr时间的原因/如果是接收到特定个字节数,则读取接收到的数据varia nt1 = m_comm1.GetI nput(); 把接收到的数据存放到 VARIANT型变量里safearray = v

    12、aria nt1;/VARIANT 型变量转换为 ColeSafeArray 型变量len = safearray.Get On eDimSize();for(k=0;kLEN;K+)BYTE型数组rxdata里safearray.GetEleme nt(&k,rxdata+k); / 得到接接收到的数据放到for(k=0;kLEN;K+)读取AD转换的高字节BYTE bt = (*(u nsig ned char*)(rxdata+k); /if(k%2)=0)if(k+1)6); /换结果,注意转换结果是左对齐高低字节合并成实际的转stremp1.Format(%2.2f,(2.56*te

    13、mp/1024);计算成实际电压值SetDlgltemText(IDC_STATIC,( 当前电压值为: +stremp1+ V); / 更新静态文本控件pbar - SetPos(temp);/ 更新进度条的当前位置strRXDdata += stremp2;/ 把新的数据放到全局的字符串里strRXDdata += stremp1;strRXDdata += Vrn; 字符串加单位 V后换行SetDlgltemText(IDC_EDIT1,strRXDdata); 更新文本控件的显示11 alii rTF-EtD n arm ml ) SetRa nge(0,1023); 设置进度条的范围

    14、 01023pbar - SetPos(0);II 当前位置为 0m serial.SetWindowText(” 关闭串口 );II 按钮显示状态改变/ TfiDQ; ftdn pxtrrt imM a 1 Million nprrgllen H:it (! n cnnnl_tetPDrtDpen()n_tor)nl .SelCQivilrtf 1); n :orin1 +Ir IPartnpH(Tltl)r): H_C. orw* r5ptRTfirpshald ; n.conni .stinpotrwKJf i);n corinl .SptErl t S76netn tBtrL;tin

    15、Mhwm曲bxLg Iten(lPRDGftESEI ): plidr SttAdnge(pir y sttP(D:n srridl.Si tULnrlabiTcxH闭带口 昇串口初始化兗学提示卄::工羽 .1 出二.空:罐 :;上M;匚T*E Pda cm汕応:出订 2$迪BP汕施區小叱按打噩希匕芒改熒可以看到,串口的参数等等都在在这里初始化的, 可以根据自己的需要修改的, 具体可以查看VC+哩的详细介绍,看看有哪些参数可以给我们修改来用。添加后再编译一下,运行后可以看到多了一个串口初始化的提示信息窗口。至此,我们已经完成了主要的串口操作及界面,剩下的就是两个按钮的操作了。9、回到资源视图的

    16、IDD_TEST_DIALO(窗口,双击开始转换按钮,给它添加事件,点击后PC通过串口发送Oxaa出来,给单片机接收。添加如下代码:必须强制转换后才能发送V4i4 CTestDl *lOnButtonl)同样地,双击另外一个按钮,给串口操作按钮添加代码, 用于关闭或者打开串口。 添加如下代码:if(! m_comm1.GetPortOpe n()/ 判断串口是否已经打开m_comm1.SetPortOpe n(TRUE); / 如果串口是关闭的,则打开串口m_serial.SetWindowText(” 关闭串口 ); / 按钮显示状态改变elsem_comm1.SetPortOpe n(FA

    17、LSE); / 如果已经打开串口,则关闭串口m_serial.SetWindowText(” 打开串口 );/ 按钮显示状态改变uoid CTestHIgi: :dnButtDri2() / TODO1 Add otir cafttrol riotiFicatiun handlercode bertiff? m_conn1 .CetPart叩驯()J判断串口是否Xn_CDnin1-etPortOipn( THUE:如杲串口是关pi_s?r ial -SetWindo wTKt (闭串口 T ;b按韌显示我态r else f数据,可以看到主窗口的的转换结果, 已经进度条显示电压值变化。 要把这个程序拿出来用,只需把vc+串口上位机testRelease 的test.exe 拷出来用就行。 Release可以在编译窗口里选择 win32 release ,然后重新编译一下就出来了。参考书籍:陈冬云、杜敬仓、任柯燕等, Atmega128单片机原理与开发指导, 2005,机械工业出版社。


    注意事项

    本文(VC++编写简单串口上位机程序.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开