MFC串口通信程序(基于Vc++及Serialport类)

上传人:hs****ma 文档编号:578459583 上传时间:2024-08-24 格式:PPT 页数:26 大小:1.23MB
返回 下载 相关 举报
MFC串口通信程序(基于Vc++及Serialport类)_第1页
第1页 / 共26页
MFC串口通信程序(基于Vc++及Serialport类)_第2页
第2页 / 共26页
MFC串口通信程序(基于Vc++及Serialport类)_第3页
第3页 / 共26页
MFC串口通信程序(基于Vc++及Serialport类)_第4页
第4页 / 共26页
MFC串口通信程序(基于Vc++及Serialport类)_第5页
第5页 / 共26页
点击查看更多>>
资源描述

《MFC串口通信程序(基于Vc++及Serialport类)》由会员分享,可在线阅读,更多相关《MFC串口通信程序(基于Vc++及Serialport类)(26页珍藏版)》请在金锄头文库上搜索。

1、串口通信程序编写 姓名:潘培哲姓名:潘培哲姓名:潘培哲姓名:潘培哲 专业:控制工程专业:控制工程专业:控制工程专业:控制工程 学号:学号:学号:学号:12013002347120130023471201300234712013002347基于Visual C+软件环境软件环境Windows 7Microsoft Visual Studio 2012CSerialPort类(定义了串口变量和通信方法)链接地址:https:/ #includeSerialPort.h编程步骤编程步骤编程步骤编程步骤在对话框c文件中声明串口类对象 CSerialPort m_SerialPort定义一个布尔变量 B

2、OOL m_bPortOpen /用来表示标志串口是否打开编程步骤编程步骤给控件添加变量在控件上右键单击-添加变量编程步骤编程步骤给控件添加变量:编辑框编辑框只需关联Value型变量变量名用于程序中赋值时调用编程步骤编程步骤给控件添加变量:组合框ComboBox需要添加控制变量变量名用于获取索引值编程步骤编程步骤将各个控件的变量关联如下:m_ctrlComPortm_ctrlBaudRatem_ctrlDataBits m_ctrlPairtym_strTxMsgm_strRxMsgm_ctrlStopBitsm_strBaudRatem_strPairtyControl型变量Value型变量

3、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

4、);/把窗口中的“打开串口”置为活动的可操作状态GetDlgItem(IDC_BUTTON2)-EnableWindow(FALSE);/把窗口中的“关闭串口”置为灰色的不可操作状态编程步骤编程步骤向对话框头文件中添加串口接收字符函数的消息响应声明响应Cserialport类中的消息响应函数-OnComm接收数据编程步骤编程步骤然后再向对话框CPP文件中添加OnComm函数的消息映射响应Cserialport类中的消息响应函数-OnComm接收数据编程步骤编程步骤接着,在对话框CPP文件中加入函数OnComm()的实现至此,每当串口接收缓冲区中有一个字符时,就会产生一个WM_ONCOMM_RX

5、CHAR消息,触发OnComm()函数,这时就可以在函数中进行数据处理响应Cserialport类中的消息响应函数-OnComm接收数据编程步骤编程步骤编写按钮控件消息响应处理函数-打开串口编程步骤编程步骤编写按钮控件消息响应处理函数-打开串口void C串口通信程序Dlg:OnBnClickedButton1()int SelPort,SelBaudRate,SelDataBits,SelStopBits;char SelParity; /定义字符型变量SelPort=m_ctrlComPort.GetCurSel()+1; /得到串口号;GetCurSel()得到的是索引值(0-Max)S

6、elStopBits=m_ctrlStopBits.GetCurSel()+1; /得到停止位SelDataBits=m_ctrlDataBits.GetCurSel()+5; /得到数据位UpdateData(TRUE); /把选定值写入变量SelBaudRate=atoi(m_strBaudRate); /得到波特率值;atoi是将字符型转整型函数(9600-9600)SelParity=m_strPairty.GetAt(0); /获得数据位;GetAt返回的是字符串的第一个字符值if(m_SerialPort.InitPort(this-GetSafeHwnd(),SelPort,Se

7、lBaudRate,SelParity,SelDataBits,SelStopBits,EV_RXFLAG | EV_RXCHAR,512)m_SerialPort.StartMonitoring(); /启动串口通信检测线程函数m_bPortOpen=TRUE; /指示串口已打开UpdateData(FALSE);elseAfxMessageBox(没有发现此串口或者被占用); /返回一个提示窗口m_bPortOpen=FALSE; /指示串口已关闭GetDlgItem(IDC_BUTTON1)-EnableWindow(!m_bPortOpen);/根据串口开闭的情况,禁用或使能按钮Get

8、DlgItem(IDC_BUTTON2)-EnableWindow(m_bPortOpen); /根据串口开闭的情况,禁用或使能按钮编程步骤编程步骤编写按钮控件消息响应处理函数-关闭串口void C串口通信程序Dlg:OnBnClickedButton2()m_bPortOpen=FALSE; /指示串口已关闭GetDlgItem(IDC_BUTTON1)-EnableWindow(!m_bPortOpen);/使能“打开串口”按钮GetDlgItem(IDC_BUTTON2)-EnableWindow(m_bPortOpen); /禁用“关闭串口”按钮以同样的方法打开“关闭串口”按钮的消息函

9、数,插入下面语句编程步骤编程步骤编写按钮控件消息响应处理函数-发送以同样的方法打开“发送”按钮的消息函数,插入下面语句void C串口通信程序Dlg:OnBnClickedButton3() if(!m_bPortOpen) /检测串口是否打开 return ; /如果关闭,则结束函数 else /如果打开,则执行下面语句 UpdateData(TRUE); /读入编辑框的数据(把编辑框中的字符写入变量) m_SerialPort.WriteToPort(LPCTSTR)m_strTxMsg); /调用函数发送数据编程步骤编程步骤编写按钮控件消息响应处理函数-清空以同样的方法打开“清空”按钮的消息函数,插入下面语句void C串口通信程序Dlg:OnBnClickedButton4() SetDlgItemText(IDC_EDIT2,NULL);/IDC_EDIT2为发送框的ID编程步骤编程步骤发布程序编程步骤编程步骤至此,简单的串口通信程序就编写完毕,不正之处请批评指正。至此,简单的串口通信程序就编写完毕,不正之处请批评指正。结束! 姓名:潘培哲姓名:潘培哲姓名:潘培哲姓名:潘培哲 专业:控制工程专业:控制工程专业:控制工程专业:控制工程 学号:学号:学号:学号:12013002347120130023471201300234712013002347谢谢观赏

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 研究生课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号