网站大量收购闲置独家精品文档,联系QQ:2885784924

从零开始学VC之串口通信和自定义消息.docVIP

从零开始学VC之串口通信和自定义消息.doc

  1. 1、本文档共15页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从零开始学VC系列教程之 三.串口通信与自定义消息 课程之前:首先请大家确认一下前面两章都已经熟悉,因为一些前面已经介绍过的基础操作在这里将不再详细说明,如果有什么问题,可以翻看一下前面的两章或者留言提问.本章是基于PC机与单片机的串口通信,用到了一个动态链接库和一个自定义消息. 学习目标:掌握VC下串口编程式的方法,掌握动态库的静态调用及自定义消息. 课程详解: 参照第一章新建一个基于对话框的Vc工程,名称定义为Eg03. 工程建立后,在对话框上加入一个组合框(ComboBox),ID号改为IDC_COMPORT 用于选择使用PC机上的哪一个串口. 在组合框后加入一个按钮,标题(Caption)改为”打开”,ID号改为IDC_BTN_PORTOPEN 用于打开串口,开始通信. 下面加入一个编程框(EDIT),ID号改为IDC_EDIT_RECMSG 用于显示接收到的数据. 在编程框下面再添加一个编程框(EDIT),.ID号改为IDC_EDIT_SEDMSG 用于添加要发送的数据. 然后在这个编程框后加入一个按钮.标题(Caption)为”发送”,ID号为IDC_BTN_SEND 最后调整位置及大小如下 添加Lib文件.这里介绍的串口通信用的不是VC自带的MSCOMM控件.原因有两个,一是顺便介绍一下动态库和自定义消息的用法.二是MSCOMM控件使用时数据类型转换比较复杂,并且使用也不是很方便.当然,以后也会介绍多线程串口通信给大家,我们会在后面开设一章多线程编程方法,并在那里详细介绍基于多线程的串口通信.这里使用一个动态库,其实也是别人封装好了的多线程通信,名字是Pcomm.在工程下载中,给出了三个文件,分别是Pcomm.h, Pcomm.lib, Pcomm.dll,现在请大家把这三个文件拷到工程目录,也就是Eg03这个文件夹中.至于什么是动态库,这三个文件倒底是什么作用,我们做完这个例程后再解释,现在还是先按步就搬,营造一个感性认识.下面添加Lib文件到工程.首先点击[工程](Project),选择下拉式菜单中的[设置](ProjectSettings) 然后会弹出一个对话框,在标签卡中选择[连接] 然后在[对象/模块]中添加Pcomm.lib,完成后如上面所示,单击[确定]退出.这样,我们就为Pcomm.dll这个动态库添加了静态链接,同时,这也就是动态库的静态链接方法,当然,还有一步就是包含Pcomm.h这个头文件.在刚才的步骤中,我们将Pcomm.Lib添加到工程,这个文件主要用于指定Pcomm.dll中各个功能函数的入口及地址,Pcomm.Lib就像一个地图指出目的地的路标,而真正的函数是在Pcomm.Dll中的.当然,为了方便调用,我们还要得到Pcomm.Dll中的函数声明,这些函数声明就在Pcomm.h这个头文件中,所以,大家打开Pcomm.h这个文件,只有函数及变量定义,并没有函数过程.下面我们来添加这个文件. 打开左边的[工作空间](WorkSpace)中选择标签[ClassView](这里大家只能看到[Class…] 这一步前两章已经详细介绍过了,大家可以参考.),然后双击[OnInitDialog]就可以打开代码窗口了,在原有头文件包含后面加入串口头文件引用.输入#include ”Pcomm.h”就可以了,完成后如下图 这一步我们加入了动态库的函数声明,后面就可以直接使用Pcomm.Dll中的函数了.下面我们来添加事件响应. 单击工作空间中间的标签[ResourceView](大家看到的是[Reso…]),再双击[IDD_EG03_DIALOG]就可以回到控件编辑状态. 首先为[打开]按钮添加代码.双击[打开]按钮,然后在按钮事件中添加.完成后如下 void CEg03Dlg::OnBtnPortopen() { // TODO: Add your control notification handler code here Port=GetDlgItemInt(IDC_COMPORT); if(SIO_OK!=sio_open(Port)) { MessageBox(串口打开错误); } else { sio_ioctl(Port,BaudRate,DataBits | StopBits | Parity); sio_cnt_irq(Port,CntIrq,1); } } 其中, sio开头的变量及函数都是Pcomm中的,我们来解释一下. sio_open是打开某个串口,传入的参数是串口号,如果我们要打开COM1,可以用sio_open(1),返回的参数在Pcomm里面定义了,如果返回SIO_OK就表示串口打开没有问题,否则,就是打开串口失败. sio_ioct

文档评论(0)

jwjp043 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档