课件:MFC串口通信程序基于Vc及Serialor类.ppt

课件:MFC串口通信程序基于Vc及Serialor类.ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
串口通信程序编写 姓名:潘培哲 专业:控制工程 学号:12013002347 ——基于Visual C++ 软件环境 Windows 7 Microsoft Visual Studio 2012 CSerialPort类(定义了串口变量和通信方法) 链接地址: /liquanhai/CSerialPort /rechen/p/5087498.html 编程步骤 新建一个MFC项目 命名 编程步骤 编程步骤 基本的窗口 对话框编辑器,直接拖动到窗口中去 编程步骤 用到的几种控件 布局后的界面 编程步骤 为每一个控件命名 在控件上右键单击-属性 编程步骤 命名完成后的窗口 为组合框添加数据 解压CSerialPort并将(.h)和(.cpp)文件复制到工程中去。 主对话框头文件中引入 #includeSerialPort.h 编程步骤 编程步骤 在对话框c文件中声明串口类对象 CSerialPort m_SerialPort 定义一个布尔变量  BOOL  m_bPortOpen //用来表示标志串口是否打开 编程步骤 给控件添加变量 在控件上右键单击-添加变量 编程步骤 给控件添加变量:编辑框 编辑框只需关联Value型变量 变量名用于程序中赋值时调用 编程步骤 给控件添加变量:组合框 ComboBox需要添加控制变量 变量名用于获取索引值 编程步骤 将各个控件的变量关联如下: m_ctrlComPort m_ctrlBaudRate m_ctrlDataBits m_ctrlPairty m_strTxMsg m_strRxMsg m_ctrlStopBits m_strBaudRate m_strPairty Control型变量 Value型变量 Value型变量 编程步骤 对写好的对话框进行一个初始化 在初始化函数OnInitDialog()中添加如下语句: BOOL C串口通信程序Dlg::OnInitDialog() { CDialogEx::OnInitDialog(); m_ctrlComPort.SetCurSel(0);//设置默认的索引值 m_ctrlBaudRate.SetCurSel(0); m_ctrlPairty.SetCurSel(0); m_ctrlDataBits.SetCurSel(3); m_ctrlStopBits.SetCurSel(0); GetDlgItem(IDC_BUTTON1)-EnableWindow(TRUE); //把窗口中的“打开串口”置为活动的可操作状态 GetDlgItem(IDC_BUTTON2)-EnableWindow(FALSE); //把窗口中的“关闭串口”置为灰色的不可操作状态 编程步骤 向对话框头文件中添加 串口接收字符函数的消息响应声明 响应Cserialport类中的消息响应函数-OnComm接收数据 编程步骤 然后再向对话框CPP文件中添加OnComm函数的消息映射 响应Cserialport类中的消息响应函数-OnComm接收数据 编程步骤 接着,在对话框CPP文件中加入函数OnComm()的实现 至此,每当串口接收缓冲区中有一个字符时,就会产生一个WM_ONCOMM_RXCHAR消息,触发OnComm()函数,这时就可以在函数中进行数据处理 响应Cserialport类中的消息响应函数-OnComm接收数据 编程步骤 编写按钮控件消息响应处理函数-打开串口 编程步骤 编写按钮控件消息响应处理函数-打开串口 void C串口通信程序Dlg::OnBnClickedButton1() { int SelPort,SelBaudRate,SelDataBits,SelStopBits; char SelParity; //定义字符型变量 SelPort=m_ctrlComPort.GetCurSel()+1; //得到串口号;GetCurSel()得到的是索引值(0-Max) SelStopBits=m_ctrlStopBits.GetCurSel()+1; //得到停止位 SelDataBits=m_ctrlDataBits.GetCurSel()+5; //得到数据位 UpdateData(TRUE); //把选定值写入变量 SelBaudRate=atoi(m_strBaudRate); //得到波特率值;atoi是将字符型转整型函

文档评论(0)

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

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

1亿VIP精品文档

相关文档