WindowsAPI串口通信程序.doc

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
WindowsAPI串口通信程序

实 验 报 告 课程名称: 信息管理综合实验 实验名称:WindowsAPI串口通信程序 院 (系): 专业班级: 姓 名: 学 号: 指导教师: 一、实验目的 1. 掌握串口通信程序设计流程; 2. 理解WindowsAPI串口参数设置的作用; 3. 掌握基于WindowsAPI的串口程序的VC基本框架; 4. 掌握通过线程处理读、写事件的方法; 5. 熟悉WindowsAPI串口处理函数的功能与参数设置。 二、实验软硬件环境 1. 微机(两台间互连、一台的一个串口同时收发); 2. USB-COM转换器; 3. 串口连接数据线、收/发数据线短接线; 4. WindowsXP/Win7 + VC++6.0/VC++2010。 三、实验内容Usb-com驱动的安装 选择符合要求的驱动进行安装,如果驱动不符合要求,可能之间不能进行通信,在驱动的基础上,通过2接3,3接2,从而基本的通信。 程序框架的建立过程 新建一个工程,串口工程,如图所示: 建立工程过程中,选择单文档类型 向工程中添加控件 MSCOMM控件属性的设置参数 设置串口类参数 1)设置读取串口数据时,从串口缓冲区中读取的字节数 void CMSComm::SetInputLen(short nNewValue) { static BYTE parms[] = VTS_I2; InvokeHelper(0xe, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, nNewValue); } 设置串口的相关参数,顺序为波特率,奇偶校验,数据位数,停止位 CString CMSComm::GetSettings() { CString result; InvokeHelper(0x17, DISPATCH_PROPERTYGET, VT_BSTR, (void*)result, NULL); return result; } 2)设置将打开的串口号码 void CMSComm::SetPortOpen(BOOL bNewValue) { static BYTE parms[] = VTS_BOOL; InvokeHelper(0x14, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, bNewValue); } 获取用户指定的串口号是否打开,返回真表示已经打开 BOOL CMSComm::GetPortOpen() { BOOL result; InvokeHelper(0x14, DISPATCH_PROPERTYGET, VT_BOOL, (void*)result, NULL); return result; } 4)设置通过串口的接收数据的类型,0表示文本类型,1表示二进制类型。 void CMSComm::SetInputMode(long nNewValue) { static BYTE parms[] = VTS_I4; InvokeHelper(0x1d, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, nNewValue); } 打开串口 void CMSComm::SetPortOpen(BOOL bNewValue) { static BYTE parms[] = VTS_BOOL; InvokeHelper(0x14, DISPATCH_PROPERTYPUT, VT_EMPTY, NULL, parms, bNewValue); } 发送串口数据 void CMyView::OnSenddata() { CString str,str1; char* a; GetDlgItem(IDC_EDIT2)-GetWindowText(str); if(str.GetLength()!=0) { for(int i=0;istr.GetLength();i++) { a=str.GetBuffer(i); mm.SetOutput(COleVariant(a)); //调用串口数据发送函数发送数据 memset(a,0,1); } } else { MessageBox(输入数据不能为空!); } str1.

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档