vc串口通信资料汇集整理(pdf)

vc串口通信资料汇集整理(pdf)

ID:6605677

大小:31.50 KB

页数:5页

时间:2018-01-20

vc串口通信资料汇集整理(pdf)_第1页
vc串口通信资料汇集整理(pdf)_第2页
vc串口通信资料汇集整理(pdf)_第3页
vc串口通信资料汇集整理(pdf)_第4页
vc串口通信资料汇集整理(pdf)_第5页
资源描述:

《vc串口通信资料汇集整理(pdf)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、VC串口通信资料汇集整理(PDF)2脚:发送数据TXD;3脚:接收数据RXD;4脚:请求发送RTS;5脚:清除发送CTS;6脚:数据设备就绪DSR;20脚:数据终端就绪DTR;8脚:数据载波检测DCD;1脚:保护地;7脚:信号地.②电气特性:数据传输速率最大可到20Kbps,最大距离仅15m.注:看了微软的MSDN6.0,其WindowsAPI中关于串行通讯设备(不一定都是串口RS-232C或RS-422或RS-449)速率的设置,最大可支持到RS_256000,即256Kbps!也不知道到底是什么串行通讯设备?但不管怎样,一

2、般主机和单片机的串口通讯大多都在9600bps,可以满足通讯需求.③接口的典型应用:大多数计算机应用系统与智能单元之间只需使用3到5根信号线即可工作.这时,除了TXD,RXD以外,还需使用RTS,CTS,DCD,DTR,DSR等信号线.(当然,在程序中也需要对相应的信号线进行设置.)以上接法,在设计程序时,直接进行数据的接收和发送就可以了,不需要对信号线的状态进行判断或设置.(如果应用的场合需要使用握手信号等,需要对相应的信号线的状态进行监测或设置.)三.16位串口应用程序的简单回顾16位串口应用程序中,使用的16位的Wind

3、owsAPI通信函数:①OpenComm()打开串口资源,并指定输入,输出缓冲区的大小(字节);CloseComm()关闭串口;例:intidComDev;idComDev=OpenComm("COM1",1024,128);CloseComm(idComDev);②BuildCommDCB(),setCommState()填写设备控制块DCB,然后对已打开的串口进行参数配置;例:DCBdcb;BuildCommDCB("COM1:2400,n,8,1",&dcb);SetCommState(&dcb);③ReadComm,W

4、riteComm()对串口进行读写操作,即数据的接收和发送.例:char*m_pRecieve;intcount;ReadComm(idComDev,m_pRecieve,count);Charwr[30];intcount2;WriteComm(idComDev,wr,count2);16位下的串口通信程序最大的特点就在于:串口等外部设备的操作有自己特有的API函数;而32位程序则把串口操作(以及并口等)和文件操作统一起来了,使用类似的操作.四.在MFC下的32位串口应用程序32位下串口通信程序可以用两种方法实现:利用Act

5、iveX控件;使用API通信函数.使用ActiveX控件,程序实现非常简单,结构清晰,缺点是欠灵活;使用API通信函数的优缺点则基本上相反.以下介绍的都是在单文档(SDI)应用程序中加入串口通信能力的程序.一使用ActiveX控件:VC++6.0提供的MSComm控件通过串行端口发送和接收数据,为应用程序提供串行通信功能.使用非常方便,但可惜的是,很少有介绍MSComm控件的资料.⑴.在当前的Workspace中插入MSComm控件.Project菜单>AddtoProject>ComponentsandControls>Re

6、gisteredActiveXControls>选择Components:MicrosoftCommunicationsControl,version6.0插入到当前的Workspace中.结果添加了类CMSComm(及相应文件:mscomm.h和mscomm.cpp).⑵.在MainFrm.h中加入MSComm控件.protected:CMSCommm_ComPort;在Mainfrm.cpp::OnCreare()中:DWORDstyle=WS_VISIBLE

7、WS_CHILD;if(!m_ComPort.Create(N

8、ULL,style,CRect(0,0,0,0),this,ID_COMMCTRL)){TRACE0("FailedtocreateOLECommunicationsControl");return-1;//failtocreate}⑶.初始化串口m_ComPort.SetCommPort(1);//选择COM1m_ComPort.SetInBufferSize(1024);//设置输入缓冲区的大小,Bytesm_ComPort.SetOutBufferSize(512);//设置输入缓冲区的大小,Bytes//if(!m

9、_ComPort.GetPortOpen())//打开串口m_ComPort.SetPortOpen(TRUE);m_ComPort.SetInputMode(1);//设置输入方式为二进制方式m_ComPort.SetSettings("9600,n,8,1");//设置波

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。