酷文首页  
站内搜索:
网站地图 | RSS订阅 | 收藏本站
经济论文
证券金融
工商管理
会计审计
法学论文
医药论文
社会论文
教育论文
计算机论文
艺术论文
哲学论文
财政税收
财务管理
公共管理
理学论文
政治论文
文学论文
工学论文
文化论文
实用文档
应用文
自考成考
演讲稿
法律文书
子栏目导行↓
网站赞助商↓
本类热点↓
本类更新↓
热门标签↓
网摘收藏↓

基于Visual C++的串行通信编程与实现

作者:邹慧群
来源:酷文网
点击:
载入中...
加入时间:2008-07-21
字体大小:[  ]

奇校验
偶校验             Sort   不选择
 
通信参数界面各控件对应的成员变量:
端口号组合框:IDC_COMBO_COM,m_Comm
波特率组合框:IDC_COMBO_B,m_BaudRate
奇偶校验组合框:IDC_COMBO_P,m_Parity
3.3.3 接收程序界面及添加控件属性设计
接收程序界面设置了3个静态文本框控件,从左到右,前两个显示的内容不变,只起提示作用,第三个静态文本框在运行时指示当前的通信参数,通信参数界面如图9。
编辑框的ID为ID_EDIT1,在Styles设置中需要选择下列属性:Multiline、Vertical scroll、Border和Read-only,其他属性按钮按默认值即可,界面中包含4个按钮,设置如表8.主界面中还包括一个MSComm控件的图标,该控件的ID为IDC_MSCOMM,接收信息主要依赖这个控件,其他设置使用默认值。

图9 通信参数界面
Fig.9 Comunications parameter interface


表8 按钮的设置表
Table 8 Button setting table 
名  称             ID               标 题              功   能
设置         ID_SETUPCOM           设置          设置串口的通信参数
打开串口       ID_OPENCOM          打开串口              打开串口
关闭串口       ID_CLOSECOM         关闭串口          关闭一打开的串口                          


                                                          续表8
 名  称              ID            标 题              功   能
退 出             ID_EXIT         退 出              退出程序

接收程序界面各控件对应的成员变量及需声明的成员变量:
设置:ID_SETUPCOM,m_Setupcom
打开串口:ID_OPENCOM,m_Opencom
关闭串口:ID_CLOSECOM,m_Closecom
编辑框:IDC_EDIT1,m_Edit1
PARA: IDC_PARA,m_Para
退出:ID_EXIT,m_Exit
CMSComm myComm;
CSetupDlg mySetupDlg;
BYTE myCom;
CString myParity;
CString myBaudRate;
3.4 计算机端程序设计
计算机端程序设计使用基于对话框的结构形式设计。首先由VC++自动生成基于对话框的程序框架,然后在该框架中添加如下代码段:
(1) 头文件引用及变量声明
(2) 设置串口
(3) 接收数据(计算机核心代码段)
(4) 关闭串口
接收数据处理的程序:
1) 串口初始化方式
初始化串口主要完成设置程序使用的串口编号、设置通信参数等,初始化串口可以通过对话框直接设置,也可以在OnInitDialog()函数代码块中直接赋初值,然后打开串口。在程序中有两种方法打开串口,一是程序启动,调用OnInitDialog()函数,就可以打开串口,缺少的串口号为COM1,如果COM1不存在或者被占用,就给出提示;另外,单击“打开串口”按钮也可以打开串口。该设计通过初始化界面进行串口设置。
2) 关于接收缓冲区


接收缓冲区大小的设置,及从接收缓冲区读取的数据的方法都会影响到能否使串口按照预期的要求进行工作。
在串口通信时,串口硬件电路根据COM端口线路状态,自动从端口获取数据,然后依次放入接收缓冲区中。但硬件电路这些操作不受软件的任何控制。MSComm控件检测接收缓冲区中的数据长度。当发现其大于TRhreshold属性值时,产生OnComm事件,并且将CommEvent属性值设置为2,以通知串口程序接收缓冲区中收到的数据。
因该串口通信没有使用硬件握手,与计算机串口通信的外部设备始终认为计算机准备好接收数据,因此会不停的向计算机发送数据。串口程序必须及时将接收缓冲区中的数据读出,否则,不断写入的新数据将使接收缓冲区溢出,导致数据丢失。
为提高程序效率,接收数据的操作都是在OnComm事件中进行的。简单的将TRhreshold属性设置为1,并设置InputLen属性的值,是每次接收的数据长度固定下来,即当接收缓冲区中有字符就产生OnComm事件,然后使用GetInput()函数读取数据。
3) 接收的数据类型
使用MSComm控件时,需要对输入缓冲区和输出缓冲区的数据进行处理。因为向输入缓冲区写读取的数据都是VARIANT类型的数据,而程序中常用的通信数据可能是文本类型的字符串,又可能是二进制的数值。能否处理好字符串与VARIANT类型数据间的转换及二进制数据与VARIANT类型数据的转换,对能否成功应用串口通信至关重要。该设计从简单出发,只设计接收字符类型的数据,使用VARIANT结构和ColeSafeArray类实现。


4) 设计主程序段框图如图10所示,设计的主要程序段分串口初始化代码段和接收数据代码段。

 

转贴于 酷文网-论文下载中心 http://www.coolwen.net


共9页: 上一页 [1] [2] [3] [4] [5] [6] 7 [8] [9] 下一页

网摘收藏:
免责声明 | 关于我们 | 广告联系 | 友情链接 | 网站地图 | 共同合作
免费论文 毕业论文 毕业论文范文 酷文网(www.coolwen.net) 版权所有 coolwen.net 2007,All Rights Reserved
E-mail:hui_love#tom.com(为防止垃圾邮件请把#换成@) 点击这里给我发消息 点击这里给我发消息
湘ICP备07003917号