- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(VC中如何从串口读取数据
方法一:使用VC++提供的串行通信控件MSComm 首先,在对话框中创建通信控件,若Control工具栏中缺少该控件,可通过菜单Project – Add to Project – Components and Control插入即可,再将该控件从工具箱中拉到对话框中。此时,你只需要关心控件提供的对 Windows 通讯驱动程序的 API 函数的接口。换句话说,只需要设置和监视MSComm控件的属性和事件。
在ClassWizard中为新创建的通信控件定义成员对象(CMSComm m_Serial),通过该对象便可以对串口属性进行设置,MSComm 控件共有27个属性,这里只介绍其中几个常用属性:
CommPort 设置并返回通讯端口号,缺省为COM1。
Settings 以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。
PortOpen 设置并返回通讯端口的状态,也可以打开和关闭端口。
Input 从接收缓冲区返回和删除字符。
Output 向发送缓冲区写一个字符串。
InputLen 设置每次Input读入的字符个数,缺省值为0,表明读取接收缓冲 区中的全部内容。
InBufferCount 返回接收缓冲区中已接收到的字符数,将其置0可以清除接收缓 冲区。
InputMode 定义Input属性获取数据的方式(为0:文本方式;为1:二进制方式)。
RThreshold 和 SThreshold 属性,表示在 OnComm 事件发生之前,接收缓冲区或发送缓冲区中可以接收的字符数。
以下是通过设置控件属性对串口进行初始化的实例:
BOOL CSampleDlg:: PortOpen(){BOOL m_Opened;……m_Serial.SetCommPort(2); // 指定串口号m_Serial.SetSettings(“4800,N,8,1″); // 通信参数设置m_Serial.SetInBufferSize(1024); // 指定接收缓冲区大小m_Serial.SetInBufferCount(0); // 清空接收缓冲区m_Serial.InputMode(1); // 设置数据获取方式m_Serial.SetInputLen(0); // 设置读取方式m_Opened=m_Serail.SetPortOpen(1); // 打开指定的串口return m_Opened;}
打开所需串口后,需要考虑串口通信的时机。在接收或发送数据过程中,可能需要监视并响应一些事件和错误,所以事件驱动是处理串行端口交互作用的一种非常有效的方法。使用 OnComm 事件和 CommEvent 属性捕捉并检查通讯事件和错误的值。发生通讯事件或错误时,将触发 OnComm 事件,CommEvent 属性的值将被改变,应用程序检查 CommEvent 属性值并作出相应的反应。在程序中用ClassWizard为CMSComm控件添加OnComm消息处理函数:
void CSampleDlg::OnComm(){……switch(m_Serial.GetCommEvent()){case 2:// 串行口数据接收,处理;}}
方法二:在单线程中实现自定义的串口通信类
控件简单易用,但由于必须拿到对话框中使用,在一些需要在线程中实现通信的应用场合,控件的使用显得捉襟见肘。此时,若能够按不同需要定制灵活的串口通信类将弥补控件的不足,以下将介绍如何在单线程中建立自定义的通信类。
该通信类CSimpleComm需手动加入头文件与源文件,其基类为CObject,大致建立步骤如下:
(1) 打开串口,获取串口资源句柄
通信程序从CreateFile处指定串口设备及相关的操作属性。再返回一个句柄,该句柄将被用于后续的通信操作,并贯穿整个通信过程。 CreateFile()函数中有几个值得注意的参数设置:串口共享方式应设为0,串口为不可共享设备;创建方式必须为OPEN_EXISTING,即打开已有的串口。对于dwFlagAndAttribute参数,对串口有意义的值是FILE_FLAG_OVERLAPPED,该标志表明串口采用异步通信模式,可进行重叠操作;若值为NULL,则为同步通信方式,在同步方式下,应用程序将始终控制程序流,直到程序结束,若遭遇通信故障等因素,将导致应用程序的永久等待,所以一般多采用异步通信。
(2)串口设置
串口打开后,其属性被设置为默认值,根据具体需要,通过调用GetCommState(hComm,dcb)读取当前串口设备控制块 DCB(Device Control Block)设置,修改后通过SetCommSt
您可能关注的文档
- (GRE准备.docx
- (GPS测量实习任务书_2011.doc
- (GPS静态数据处理说明书1.doc
- (Grubfordos入门教程.doc
- (gushi古诗.doc
- (GSM语音通信.doc
- (HBaseshell的基本用法.docx
- (hg初中语文古诗词理解性默写荟萃.doc
- (However和的Whether用法.doc
- (HotelCalifornia.doc
- 灵巧手:百家争鸣,进化不息250402.pdf
- 小红书家装设计行业2025年营销通案.pdf
- 特朗普关税战2.0的三大交易主线 .pdf
- AItoC四个方向:硬件入口、现象级应用、爆款内容、IP运营.pdf
- 仲量联行(JLL):2025年全球数据中心展望报告:塑造未来的数字基础设施 2025 Global Data Center Outlook Shaping Tomorrow’s Digital Infrastructure.pdf
- 深度研究:房地产市场止跌回稳新特征.pdf
- 中国智能驾驶商业化发展白皮书(2025)-2025-64页.pdf
- 人教版数学五年级上册6.4《组合图形的面积》(课件).pptx
- 人教版四年级下册数学第2课时 观察物体(二)(课件).pptx
- 六年级下册数学人教版奥数计算表面积(课件).pptx
最近下载
- 2021年香薰服务合同.docx
- 《Python与数据分析应用》课件——第10章 数据分析工具Pandas.pptx VIP
- 战争狂人希特勒简介.ppt
- 家庭教育指导师试题库.doc
- -司法鉴定人执业能力评估业务理论知识考试题库(司法鉴定人考试试题及答案解析)-.docx VIP
- 病房急产应急预案演练脚本.docx VIP
- 生产项目准入及预算标准第六册主网修理项目准入及预算标准(预算分册).docx
- 2025新人教版语文七年级下册《第一单元》大单元整体教学设计[2022课标].pdf
- 电子商务文案创意与撰写:直播脚本编写PPT教学课件.pptx
- (高清版)-B-T 30146-2023 安全与韧性 业务连续性管理体系 要求.pdf VIP
文档评论(0)