VisualC网络编程案例实战之串口通信编程应用.pptx

VisualC网络编程案例实战之串口通信编程应用.pptx

  1. 1、本文档共95页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第14章 串口通信编程应用;14.1 MFC串口控件编程;14.1.1 VC中应用MSComm控件编程步骤;1.创建工程;2.向工程中添加串口控件;图14.1 添加串口控件;;图14.2 注册串口控件;图14.3 提示控件注册成功;14.1.2 MSComm控件类;1.CMSComm类头文件;2.使用CMSComm类;14.1.3 MSComm控件串行通信编程方法;1.设置串口参数;;表14.1 串口接收数据类型的取值;用户设置串口的相关参数,可以调用函数SetSettings()来实现。该函数原型如下: void SetSettings(LPCTSTR lpszNewValue); 参数lpszNewValue表示与该串口相关的参数,其顺序依次是波特率、奇偶校验、数据位数、停止位数。例如,用户使用该函数设置串口的相关参数,代码如下: CString str=9600,n,8,1; //定义并初始化参数字符串 comm.SetSettings(str); //设置串口参数 在上面的程序中,用户将波特率设置为9600(默认值),n表示无校验位,数据位为8,停止位为1。其中,设置奇偶校验位的取值如表14.2所示。;表14.2 设置奇偶校验位的取值;;;2.打开串口;;3.发送串口数据;4.接收串口数据;图14.4 添加串口消息响应函数;;14.1.4 在基于对话框的程序中使用MSComm控件;1.设计界面;图14.5 实例程序界面设计;表14.3 控件ID、属性以及作用;图14.6 控件关联的变量;2.程序的初始化;3.发送串口数据;4.接收串口数据;图14.7 程序运行效果;14.2 串口API编程;14.2.1 Windows API串口编程概述;;14.2.2 API串口编程中用到的结构及相关概念说明;1.串口编程相关结构体;表14.4 参数BaudRate的常用取值;表14.5 参数StopBits的常用取值;;;;;2.串口编程的相关API函数;;;例如,用户使用这两个函数为串口设置相关的参数,其代码如下: 01 02 BOOL istrue; //定义布尔变量 03 GetCommState(hModem,dcb); 04 dcb.BaudRate = 9600; 05 dcb.ByteSize = 8; 06 dcb.fParity = FALSE; 07 dcb.StopBits = ONESTOPBIT; 08 istrue=SetCommState(hModem, dcb); //调用函数进行参数设置 09 if(istrue) //判断串口参数是否设置成功 10 { 11 MessageBox(串口参数设置成功!); //若参数设置成功,则提示用户 12 } 13 else 14 { 15 MessageBox(串口参数设置失败!请重试); //若参数设置失败,则提示用户重试 16 } ;;例如,用户为串口设置操作超时时间间隔。代码如下: 01 ... //省略部分代码 02 COMMTIMEOUTS con; //定义结构体变量 03 con.ReadIntervalTimeout=1000; //设置串口数据读取的超时时间 04 BOOL istrue; //定义布尔变量 05 istrue= SetCommTimeouts(hModem, con); //调用函数进行参数设置 06 if(istrue) //判断串口参数是否设置成功 07 { 08 MessageBox(超时时间设置成功!); //若参数设置成功,则提示用户 09 } 10 else 11 { 12 MessageBox(超时时间设置失败!请重试); //若参数设置失败,则提示用户重试 13 } 14 ... //省略部分代码 ;;;;;表14.6 串口缓冲区清除标志值;例如,用户将前面所指定的串口缓冲区中的内容清除。代码如下: 01 ... //省略部分代码 02 BOOL istrue; //定义布尔变量 03 istrue=PurgeComm(hModem, 04 PURGE_TXABORT| PURGE_RXABORT| PURGE_TXCLEAR| PURGE_RXCLEAR); 05 //调用函数对缓冲区内容进行清除 06 if(istrue) //判断清除是否成功 07 { 08 MessageBox(缓冲区数据清除成功!); //若参数设置成功,则提示用户 09 } 10 else 11 { 12 MessageBox(缓冲区数据清除失败!请重

文档评论(0)

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

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

1亿VIP精品文档

相关文档