2016串口与界面设计教程.docxVIP

  1. 1、本文档共24页,可阅读全部内容。
  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文档。上传文档
查看更多
2016串口与界面设计教程

PAGE \* MERGEFORMAT24 串口虚拟软件VSPD软件的使用 VSPD是纯软件模拟实现的虚拟串口软件,对串口通讯应用系统程序的调试具有很好的帮助作用。安装并启动该软件后出现如下图1界面。 图1 VSPD操作界面图 添加串口 单击“添加端口”将成对添加虚拟串口,如图1中所示。该计算机中已有物理串口COM1和COM2,已经添加了COM3、COM4虚拟串口。再次点击“添加串口”时将添加COM5、COM6串口。 重置串口 单击“重置端口”将出现删除所有虚拟串口的界面,确定后将删除所有虚拟串口。 虚拟串口的使用 虚拟串口你的使用与物理串口一样。但需要注意的是必须按照前面添加时的顺序而成对使用。如上述图1中COM3只能与COM4配对使用。 打开两个串口调试助手窗口,一个使用COM3,另一个使用COM4。若波特率、数据位数、奇偶校验都一致时,即可顺利实现双方的数据发送与接收。如图2所示。 当用户设计开发应用程序时,使用串口调试助手使用其中一个虚拟串口,而用户程序使用该对的另一个虚拟串口,在串行通讯参数设置一致的情况下,进行发送和接收程序的调试。 图2 使用串口调试助手实现两个虚拟串口之间的通讯 串口调试助手软件的使用 目前辅助用户调试串口应用程序的软件很多,如串口调试助手等,它们的主要功能基本一样,但也有细微区别。有些软件可以实时反映当前计算机的所有串口,包括物理与虚拟串口,有些软件则是提供一定范围内的串口号,供用户选择,如从COM1到COM10。 此类软件的使用很简单,不再叙述。 用户串口应用程序的设计实现 目前编写串口应用程序的方法主要有三种。一是使用串行通讯API函数,二是使用MSCOMM控件,三是使用第三方开发的串行通讯类(如Serialport)或动态链接库。在此介绍使用简单的MSCOMM控件。 MSCOMM控件的注册 在VS2005/VS2010环境下使用该控件时首先要进行注册。 ? ?将MSCOMM控件文件mscomm32.ocx放到windows/system32文件夹下。 ? ?点击开始-运行,输入:Regsvr32 mscomm32.ocx,按确定按钮,弹出对话框表示成功。 图3 MSCOMM控件注册成功界面 2、使用方法 (1)新建一个MFC应用程序(基于对话框) (2)在对话框上右击鼠标,出现如图4快捷菜单。 图4 快捷菜单 (3)单击“插入ActiveX控件”,出现如图5界面。选择Microsoft Communication Control. Version 6.0,即可在对话框上出现以电话图标形式的MSCOMM控件。 图5 选择MSCOMM控件 (4)右击该图标,在快捷菜单中选择“添加变量”,如m_mscomm1。然后在该控件的属性里添加OnComm函数(右侧属性栏上方有一个闪电图标,就是添加消息响应的地方)。 (5)添加两个编辑控件,分别添加其对应CString变量m_rev、m_send。 添加一个命令按钮IDC_BUTTON1,用于发送数据。 图6 对话框设计 (6) 编写代码 1)在BOOL CXXXDlg::OnInitDialog()初始化函数里添加如下代码: // TODO: 在此添加额外的初始化代码 m_mscomm1.put_CommPort(3); //端口号为3 m_mscomm1.put_InBufferSize(1024); //设置输入缓冲区的大小,Bytes m_mscomm1.put_OutBufferSize(512); //设置输出缓冲区的大小,Bytes? if(!m_mscomm1.get_PortOpen()) //打开串口 { m_mscomm1.put_PortOpen(true);? } m_mscomm1.put_InputMode(1); //设置输入方式为二进制方式? m_mscomm1.put_Settings(L9600,n,8,1); //设置波特率等参数? m_mscomm1.put_RThreshold(1); //为1表示有一个字符即引发事件? m_mscomm1.put_InputLen(0); 2)OnCommMscomm1()接收数据代码 VARIANT variant_inp; COleSafeArray safearray_inp; long i = 0; int len; char rxdata[1000]; switch (m_mscomm1.get_CommEvent()) { case 2: //表示接缓冲区内有字符 variant_inp = m_mscomm1.get_Input();//接收数据 safearray_inp = variant

文档评论(0)

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

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

1亿VIP精品文档

相关文档