欢迎来到天天文库
浏览记录
ID:56439089
大小:1.90 MB
页数:10页
时间:2020-06-24
《在VS(VC)2010中使用MSComm控件实现串口通信的详细步骤.pdf》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、1.安装好VS2010,网上很多人说使用VC6.0的mscomm32.ocx控件,下载并注册,注册过程看上去还很复杂。我是使用VS2010自带的控件,因此没有这些过程,只需要安装好VS2010就行了。2.建立“基于对话框”的MFC工程,命名为CommTest,应用程序类型选择“基于对话框”建立好的工程如下图所示。3.删除默认的“确定”,“取消”按钮和静态文本框“TODO:在此放置对话框控件”,添加如下对话框控件:①“打开串口”按钮,添加方法为从右侧“工具箱”拖放一个“Button”到对话框,并在右侧“属性”卡中修改
2、“Caption”为“打开串口”,修改“ID”为“IDC_BUTTON_OPEN”。②“关闭串口”按钮,添加方法为从右侧“工具箱”拖放一个“Button”到对话框,并在右侧“属性”卡中修改“Caption”为“关闭串口”,修改“ID”为“IDC_BUTTON_CLOSE”。③“发送”按钮,添加方法为从右侧“工具箱”拖放一个“Button”到对话框,并在右侧“属性”卡中修改“Caption”为“发送”,修改“ID”为“IDC_BUTTON_SEND”。④“发送编辑框”。⑤“接受编辑框”4.添加串口通信控件。在对话框上
3、“右键”对话框右下角(默认在左上角)的电话图标就是串口控件。5.给控件添加变量在控件(电话图标)上“右键”命名为m_mscomm,点击完成,工程中会自动添加“mscomm.h”和“mscomm.cpp”两个文件。6.给两个编辑框添加成员变量7.添加三个按钮的事件直接“双击”三个按钮,在CommTestDlg.cpp文件中会增加如下几个函数:voidCCommTestDlg::OnBnClickedButtonSend(){//TODO:在¨²此ä?添¬¨ª加¨®控?件t通ª¡§知a处ä
4、理¤¨ª程¨¬序¨°代䨲
5、码?}voidCCommTestDlg::OnBnClickedButtonOpen(){//TODO:在¨²此ä?添¬¨ª加¨®控?件t通ª¡§知a处ä
6、理¤¨ª程¨¬序¨°代䨲码?}voidCCommTestDlg::OnBnClickedButtonClose(){//TODO:在¨²此ä?添¬¨ª加¨®控?件t通ª¡§知a处ä
7、理¤¨ª程¨¬序¨°代䨲码?}消息映射已经自动关联。8.添加串口控件的事件处理程序。点击“添加编辑”即可,在CommTestDlg.cpp文件中会增加函数:voidCComm
8、TestDlg::OnCommMscomm1(){//TODO:在¨²此ä?处ä
9、添¬¨ª加¨®消?息¡é处ä
10、理¤¨ª程¨¬序¨°代䨲码?}数据接收将在此函数中进行。9.打开串口及串口设置。voidCCommTestDlg::OnBnClickedButtonOpen(){//TODO:在此添加控件通知处理程序代码if(m_mscomm.get_PortOpen())//如果串口是打开的,则行关闭串口{m_mscomm.put_PortOpen(FALSE);}m_mscomm.put_CommPort(1)
11、;//选择COM1m_mscomm.put_InBufferSize(1024);//接收缓冲区m_mscomm.put_OutBufferSize(1024);//发送缓冲区m_mscomm.put_InputLen(0);//设置当前接收区数据长度为0,表示全部读取m_mscomm.put_InputMode(1);//以二进制方式读写数据m_mscomm.put_RThreshold(1);//接收缓冲区有1个及1个以上字符时,将引发接收数据的OnComm事件m_mscomm.put_Settings(_T(
12、"9600,n,8,1"));//波特率9600无检验位,8个数据位,1个停止位if(!m_mscomm.get_PortOpen())//如果串口没有打开则打开{m_mscomm.put_PortOpen(TRUE);//打开串口AfxMessageBox(_T("串口1打开成功"));}else{m_mscomm.put_OutBufferCount(0);AfxMessageBox(_T("串口1打开失败"));}}10.添加关闭串口按钮的消息响应函数voidCCommTestDlg::OnBnClicked
13、ButtonClose(){//TODO:在此添加控件通知处理程序代码m_mscomm.put_PortOpen(FALSE);//关闭串口AfxMessageBox(_T("串口1已关闭"));}11.添加发送按钮消息响应函数voidCCommTestDlg::OnBnClickedButtonSend(){//TODO:在此添加控件通知处理程序代码Upd
此文档下载收益归作者所有