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

    VC++编写简单串口上位机程序Word文档下载推荐.docx

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

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

    VC++编写简单串口上位机程序Word文档下载推荐.docx

    1、Linlc Library 秽Win彳2 Sltic Librery工程名椒眇 tt位邸”创建新的工作空间曲- Er : a I 1 -丄- J r 沿,!,”:已訓ir T lE Ir I IM甲引曰:Win32FC应用程序向导-歩玄您要创建的应用程序类型是:厂单文档圈-多重文档IM 僅蕊本对卷框回:多重文档(MJ|7文档匱看体系结构支持世)您的资源使用的语言是:中文0 APPWZCHS.DLLFC商用稈序向导-步舉2 # A您是否希望包含:咲于“对话框厂上下文相关帮助P 3D外观 您希望包含什么其他支持?厂自动撫作鸟P :! 一 W - Si .x荫如世昭Jte佚回 您希望包含WOSA支持

    2、吗?厂 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库吗?金作为共享的DLL厂作为静态的DLL2、在项目中插入 MSCom控件:工程- 增加到工程-Components and Controls- 双击Registered ActiveX Con trols- 选择 Microsoft Commun

    3、i cati ons Con trol, vers ion6.0-I nsert ,按默认值添加,你会发现多了个电话图标,这是增加后串口通信控件。矯人 工程 组建 工具 曾口 稲助CoKponnt and Coxiirpls1选择要插入到工程的组件査揣BS)(I): |匚)耳昨iHtwrwd Actiy曲匚皿trolw刁 4=丝古IjTk3、删除确认、取消和提示框,添加 “电话”、进程、静态文本、按钮、编辑框,拖动添加的控件,根据喜好布局。4、右击编辑框Edit选择属性,在样式里设置,勾选多行、垂直滚动,其它可按默认值。右击静态文本 Text选择属性,在常规设置里,修改标题。右击按钮PushB

    4、utton选择属性,在在常规设置里,修改标题。5、查看-建立类向导 MFCCIassWizard-Member Viariable疆曲口 僮eebek嚓Ife日HH,选择 ClassName 为 CTestDIg左件修改后界面如下,程序写出来运行时 “电话”标志会自动消失。的类,Control ID 为MSC0MM1双击它,为它添加控制变量 m_comm。类似的,选择IDC BUTTON添加控制变量 m serial(建立类向导也可以右击然后在弹出的快捷菜单里选择建立类向导)Class fjarnelttst 耳 |CTes1Dlg叭怙6101”九 ZV.yestVestf)lg.cppPio

    5、ject:Message Maps Member Variables Aulomstion ActiveX Events Class InfoClass AAme:te st 耳 CT e stD I g王、$ 全部组件,然至此,基本框架已经出来了,编译后运行可以看到如下所示的界面。后组建- 执行)存 开嗚转换Rill=! 卫丄ll打开串口6、点击左侧的视图窗口,可以在三种模式下切换,第三个是打开我们的源代码窗口,个是类,第二个是窗体的资源视图。主一 _ zXb|置Ft巳乩言FilEtcst.tpp FpuFIJI n _rnn选择File View ,展开test files-Header

    6、Files, 打开testDIg.h ,在全局变量下添加如下代码,然后保存:int gllen; 定义整型标量gllen,用于记录接收数据的个数CProgressCtrl * pbar; / 指向进度条的指针,用于操作进度条CStri ng strRXDdata; / 编辑框显示的文本,记录历次转换值/ Constructionpublic:CTestDLq(CVn / standard constructai-/ Dialog (Mtd /OFX_DfiTfi(CItOlg) enun TbD IOD_TEST_bJ ALOC J; CButton rr s(*rijl;nis-x- n i

    7、 一 一亠7、 点击 Recourse View,展开 test recourses-Dialog ,双击 IDD_TEST_DIALOG 编辑我 们的主界面对话框。VC会进入源码编辑窗口,这个函数是用来处理串口事件的,当 PC串口接收到数据时,会产生一个数据缓冲区有数据的消息事件, 然后调用执行这个函数。添加如下代码,进行数据处理,窗口更新等操作:VARIANT variant1; 定义VARIANT型变量,用于存放接收到的数据COIeSafeArray safearray;/ 定义 safearray 型变量LONG len ,k; 定义长整型变量 len ,kBYTE rxdata204

    8、8; 定义 BYTE型数组CStri ng stremp1,stremp2; 定义两个字符串if(m_comm1.GetCommEvent()=2)/ 判断引起 OnComr时间的原因/如果是接收到特定个字节数,则读取接收到的数据varia nt1 = m_comm1.GetI nput(); 把接收到的数据存放到 VARIANT型变量里safearray = varia nt1;/VARIANT 型变量转换为 ColeSafeArray 型变量len = safearray.Get On eDimSize();for(k=0;kLEN;K+)BYTE型数组rxdata里safearray.G

    9、etEleme nt(&k,rxdata+k); / 得到接接收到的数据放到读取AD转换的高字节BYTE bt = (*(u nsig ned char*)(rxdata+k); /if(k%2)=0)if(k+1)6);换结果,注意转换结果是左对齐高低字节合并成实际的转stremp1.Format(%2.2f,(2.56*temp/1024);计算成实际电压值SetDlgltemText(IDC_STATIC,( 当前电压值为: +stremp1+ V); / 更新静态文本控件pbar - SetPos(temp);/ 更新进度条的当前位置strRXDdata += stremp2;/ 把新

    10、的数据放到全局的字符串里strRXDdata += stremp1;strRXDdata += Vrn; 字符串加单位 V后换行SetDlgltemText(IDC_EDIT1,strRXDdata); 更新文本控件的显示11 alii rTF-EtD n arm ml )/ 10bD 1 Add aur l o ntr o 1 nd11 f 1 匚*1:占on hridl?is cade hereItV bt ” Lltjvl这时重新编译一下,看会不会有什么错误,出现下面提示,可以选择全部组建来清除。LINK : LNK4073: cann ot create map for .ILK fi

    11、le; lin ki ng nonin creme ntally出现下面错误,请关闭运行的 test.exe 后重试。 fatal error LNK1104: cannot open file Debug/test.exe出现下面错误两种错误, 是由于空间编号问题引起的, 当我们添加了编辑框或者 “电话”后再添加,其编号自动加一,就会出现控件没定义。Z:vc+ 串口上位机 testtestDlg.cpp(32) : error C2065: IDC_MSC0MM1 : undeclaredide ntifiervc+ 串口上位机 testtestDlg.cpp(139) :IDC_EDIT1

    12、解决方法是,在 RecourseView里,打开窗体IDD_TEST_DIALOG右击“电话”或者编辑框等其它出错的控件,右击选择属性,在常规里修改 ID,这里的程序,除 BUTTON! 1、2两个之外,其它都是1icraEfrft CoHBWki rations Coiktrol, ve血 發 常规 | BuffersID: |IDC MSCOMM1| :F可见圖 厂组曲厂己禁用回 灯制表站回全部组建编译一下, 看看有没有错误,没有错误就可以运行一下, 可以看到界面更原来是样的。有错误就修改一下,省得弄多了,错在哪里都不知道,查起来麻烦。8、在源码编辑里,打开testDlg.cpp 文件,进

    13、行窗口初始化函数的编写。找到 BOOL CTestDlg:OnlnitDialog() 函数,在 SetIcon(m_hlcon, FALSE); / Set small icon/ TODO: Add extra ini tialization here后面添加如下初始化代码:gllen = 0; / 记录转换次数全局变量清零if(! m_comm1.GetPortOpe n()/ 判断串口是否已经打开m_comm1.SetCommPort(1); / 选择串口号 1 m_comm1.SetPortOpe n(TRUE); / 打开串口m_comm1.SetRThreshold(2); /

    14、收到两个字节引发 On Com事件m_comm1.Set In putMode(1); 输入模式选为二进制m_comm1.SetSett in gs(57600, n,8,1); / 设置串口参数,波特率 57600,无奇偶校验,1位停止位,8位数据位MessageBox(串口初始化完毕,”提示II 提示串口成功初始化else MessageBox(串口被占用II 如果已经打开串口,消息框提醒pbar = (CProgressCtrl*)GetDlgltem(IDC_PROGRESS1); 获得指向 IDC_PROGRESS的指针 SetRa nge(0,1023); 设置进度条的范围 010

    15、23 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 Mhwm曲bxLg It

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

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

    18、状态改变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 fFi_commlL-Set Port Open (FftLSE ):如杲已经农开Assert al - SetUlndDUTpxtf 打开串口11);按钿显示块态/M-* K-M K-tt tt W M 4M * K H 4 数据,可以看到主窗口的的转换结果, 已经进度条显示电压值变化。 要把这个程序拿出来用,只需把vc+串口上位机testRelease 的test.exe 拷出来用就行。 Release可以在编译窗口里选择 win32 release ,然后重新编译一下就出来了。参考书籍:陈冬云、杜敬仓、任柯燕等, Atmega128单片机原理与开发指导, 2005,机械工业出版社。


    注意事项

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

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




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

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

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


    收起
    展开