然后返回我们的窗体,依次双击发送数据、清除数据、和退出。生成如图所示的函数体。
进入chuangkouDlg.cpp中的最上方添加 #include \#include \
#include \三个头文件。
在void CchuankouDlg::OnBnClickedButtonOpen()下添加代码
voidCchuankouDlg::OnBnClickedButtonOpen() {
// TODO: 在此添加控件通知处理程序代码
CString str,str1,n; //定义字符串 GetDlgItemText(IDC_BUTTON_OPEN,str); CWnd *h1;
h1=GetDlgItem(IDC_BUTTON_OPEN); //指向控件的caption
if(!m_mscom.get_PortOpen()) {
m_comb2.GetLBText(m_comb2.GetCurSel(),str1);//取得所选的字符串,并存放在str1里面
str1=str1+','+'n'+','+'8'+','+'1'; //波特率、串口号、8位数据位、1位校验位
m_mscom.put_CommPort((m_comb1.GetCurSel()+1)); //选择串口 m_mscom.put_InputMode(1); //设置输入方式为二进制方式 m_mscom.put_Settings(str1); //波特率为(波特率组á合框)无校验,8数据位,1个停止位
m_mscom.put_InputLen(1024); //设置当前接收区数据长度为1024 m_mscom.put_RThreshold(1); //缓冲区一个字符引发事件 m_mscom.put_RTSEnable(1); //设置RT允许
m_mscom.put_PortOpen(true); //打开串口 if(m_mscom.get_PortOpen()) {
str=_T(\关闭串口\ UpdateData(true);
h1->SetWindowText(str); //改变按钮名称为‘’关闭串口” } }
else {
m_mscom.put_PortOpen(false); if(str!=_T(\打开串口\ {
str=_T(\打开串口\ UpdateData(true);
h1->SetWindowText(str); //改变按钮名称为打开串口 } } }
同理添加发送、清除、退出的程序
voidCchuankouDlg::OnBnClickedButtonSend() {
// TODO: 在此添加控件通知处理程序代码 UpdateData(true); //更新控件数据
m_mscom.put_Output(COleVariant(m_Editsend));//把发送编辑框的数据发送出去 }
voidCchuankouDlg::OnBnClickedButtonClean() {
// TODO: 在此添加控件通知处理程序代码
m_EditReceive=_T(\//给接收编辑框发送空格符 UpdateData(false); //更新数据 }
voidCchuankouDlg::OnBnClickedButtonClose() {
// TODO: 在此添加控件通知处理程序代码 if(m_mscom.get_PortOpen())
m_mscom.put_PortOpen(false); CDialogEx::OnCancel(); }
然后选中串口控件,右键选择添加事件处理程序,点击添加编辑即可。
添加编辑后会跳转到解决方案的chuankouDlg.cpp中,并生成voidCchuankouDlg::OnCommMscomm1()结构框架。
为结构框架添加程序代码:
搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新医药卫生VS2012+MFC+串口通信的实现 (4)全文阅读和word下载服务。
相关推荐: