VS之MFC串口通信的编写教程Word文档下载推荐.doc
- 文档编号:13162687
- 上传时间:2022-10-07
- 格式:DOC
- 页数:33
- 大小:5.85MB
VS之MFC串口通信的编写教程Word文档下载推荐.doc
《VS之MFC串口通信的编写教程Word文档下载推荐.doc》由会员分享,可在线阅读,更多相关《VS之MFC串口通信的编写教程Word文档下载推荐.doc(33页珍藏版)》请在冰豆网上搜索。
修改组合边框显示的名称;
在组合边框里面添加编辑文本框;
在这一步一定要小心选择右边的属性;
这一步是把串口控件添加到对话框中来;
选择我们需要的串口控件如下图所示;
三、为编辑框,Combox框,串口控件添加变量;
四、为按钮和串口控件添加程序函数
voidC串口V2Dlg:
:
OnBnClickedButtonOpen()//打开串口按钮程序
{
//TODO:
在此添加控件通知处理程序代码?
CStringstr,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'
;
//这句话很关键
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("
打开串口))
打开串口"
//改变按钮名称为打开串口
}
}
}
OnBnClickedButtonSend()//发送数据按钮程
UpdateData(true);
//更新控件数据
m_mscom.put_Output(COleVariant(m_Editsend));
//把发送编辑框的数据发送出去
OnBnClickedButtonClean()//清除数据按钮程序
在此添加控件通知处理程序代码
m_EditReceive=_T("
"
//给接收编辑框发送空格符
UpdateData(false);
//更新数据
OnBnClickedButtonClose()//退出按钮程序
if(m_mscom.get_PortOpen())
CDialogEx:
OnCancel();
OnCommMscomm1()//串口控件程序
在此处添加消息处理程序代码
if(m_mscom.get_CommEvent()==2)
charstr[1024]={0};
longk;
VARIANTInputData=m_mscom.get_Input();
//读缓冲区
COleSafeArrayfs;
fs=InputData;
//VARIANT型变À
量转换为COleSafeArray型变量
for(k=0;
k<
fs.GetOneDimSize();
k++)
fs.GetElement(&
k,str+k);
//转换为BYTE型数组
m_EditReceive+=str;
// 接收到编辑框里面
//SetTimer(1,10,NULL);
//延时10ms
UpdateData(false);
//串口选择组合框
CStringstr;
inti;
for(i=0;
i<
15;
i++)
str.Format(_T("
com%d"
),i+1);
m_comb1.InsertString(i,str);
m_comb1.SetCurSel(0);
//预置COM口
//波特率选择组合框
CStringstr1[]={_T("
300"
),_T("
600"
1200"
2400"
4800"
9600"
),
_T("
19200"
38400"
43000"
56000"
57600"
115200"
)};
for(inti=0;
12;
intjudge_tf=m_comb2.AddString(str1[i]);
if((judge_tf==CB_ERR)||(judge_tf==CB_ERRSPACE))
MessageBox(_T("
buildbauderror!
));
m_comb2.SetCurSel(5);
//预置波特率为"
写完之后编译程序
五、调试我们写好的串口工具
我们下面用51单片机调试一下,结果也是成功的;
m_Edit.SetSel(-1,-1);
this->
SetDlgItemTextW(IDC_EDIT1,m_EditReceive);
//将m_EditReceive内容显示到ID为IDC_EDIT1的编辑框的最后位置
m_Edit.LineScroll(m_Edit.GetLineCount()-1,0);
//将垂直滚动条滚动到最后一
修改一下接收编辑框的属性,发送编辑框不用做修改;
再调试一下发现问题解决了!
六、修改图标和软件信息
我们去到项目所在的文件夹中,如下图所示;
TheEnd!
作者:
刘小二
2014年5月2日星期五
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VS MFC 串口 通信 编写 教程