电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

c串口通信实例vs2008

12页
  • 卖家[上传人]:suns****4568
  • 文档编号:90656939
  • 上传时间:2019-06-14
  • 文档格式:DOC
  • 文档大小:1.31MB
  • / 12 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 1、VS2008下用MFC 的MSComm控件编写串口程序首先启动VS2008,文件新建项目(快捷键Ctrl+Shift+N),项目类型Visual C+MFC模板MFC应用程序,l 名称(如port1)。l 位置(如桌面下的文件夹配置软件)。l 解决方案名称(会随着名称自动生成,建议不要修改)点击确定,进入MFC应用程序向导。选择下一步,不要直接点完成。选择基于对话框,把使用Unicode库(N)点掉。然后下一步,把“关于”框(B)点掉,可以点完成了。进入界面把对话框窗口中的静态文本控件,两个按钮控件都删掉,(选中后按Delete键即可),修改后的界面如下图。在对话框中添加两个组框(Group Box),组框中分别添加一个文本编辑控件(Edit Control),另外加入一个按钮控件(Button)这些都在工具箱中,选中后在对话框窗口中调节控件大小。1. 需要修改所添加的控件一些属性,如鼠标左键选中上面的组框,单击鼠标右键选属性Caption改为:显示区。2. 修改下面的组框:属性Caption发送区。3. 修改上面的示例编辑框属性:l IDIDC_EDIT_RECV;l Multili

      2、neTrue;l Want ReturnTrue;l Vertical ScrollTrue;l Auto VScrollTrue;4. 修改下面的示例编辑框属性:l IDIDC_EDIT_SEND;l MultilineTrue;l Vertical ScrollTrue;5. 修改按钮控件的属性:l IDIDC_BUTTON_SEND;l Caption发送修改好属性后的窗口如下图:接下来添加关键的控件,选择工具选择工具箱项COM组件Microsoft Communications Control,version 6.0确定,这时在工具箱下就有了该控件,小电话标志。在工具箱中选中,然后把该控件拖到对话框中,如下图:界面完成后可以添加代码了,要在类中添加变量和函数,先添加变量在类视图下,选中Cport1Dlg,单击鼠标右键添加添加变量控件变量(O)控件ID(I)IDC_EDIT_RECV;类别(T)Value;变量名m_strRecvData,完成。如下图:同理添加另外控件变量控件ID(I)IDC_EDIT_SEND;类别(T)Value;变量名m_strSendData。如下图:同

      3、理添加另外控件变量控件ID(I)IDC_MSCOMM1;类别(T)Control;变量名m_cComm,完成。如下图:接下来添加函数(事件处理程序):选中MSComm控件,单击鼠标右键,选择添加事件处理程序(A),弹出窗口,把函数处理程序名称修改为OnComm,点击添加编辑,跳转到程序部分,先不要添加。同理,为按钮控件添加事件处理程序,函数处理程序名称:OnButtonSend。代码部分是重点,(我电脑设置的是打开串口2,),实际上VS2008与VC+6.0中相对应的函数(类的方法)名发生了一些变化,这就需要一些修改要把在VC+6.0中的某些函数中的Get改为get_ ,要把Set改为put_ 。1. 我们在OnInitDialog()中添加初始化语句,用于设置串口通信的属性和打开串口。BOOL Cport1Dlg:OnInitDialog()。/添加的对串口的初始化语句if(m_cComm.get_PortOpen() /如果发现串口本来是打开的,则关闭串口m_cComm.put_PortOpen(FALSE);m_cComm.put_CommPort(2); /选择COM1端口m_

      4、cComm.put_InputMode(1); /输入方式为二进制方式m_cComm.put_InBufferSize(1024); /设置输入缓冲区m_cComm.put_OutBufferSize(512); /设置输出缓冲区m_cComm.put_Settings(TEXT(9600,n,8,1);/波特率,无校验,个数据位,个停止位if(!m_cComm.get_PortOpen()m_cComm.put_PortOpen(TRUE); /打开串口m_cComm.put_RThreshold(1); /每当接收缓冲区有个字符则接收串口数据m_cComm.put_InputLen(0); /设置当前缓冲区长度为m_cComm.get_Input(); /预读缓冲区以清除残留数据elseAfxMessageBox(打开端口失败!,MB_ICONSTOP,0); 2.我们在OnComm()函数中添加对串口发送过来的数据处理过程void Cport1Dlg:OnComm()/从串口接收数据并显示在编辑框中VARIANT variant_inp;COleSafeArray safearr

      5、ay_inp;long len,k;byte rxdata512; /设置BYTE数组CString strtemp;if(m_cComm.get_CommEvent()=2) /值为表示接收缓冲区内有字符variant_inp=m_cComm.get_Input(); /读缓冲区消息safearray_inp=variant_inp; /变量转换len=safearray_inp.GetOneDimSize(); /得到有效的数据长度for(k=0;klen;k+)safearray_inp.GetElement(&k,rxdata+k);for(k=0;klen;k+) /将数组转换为CString型变量char bt=*(char*)(rxdata+k); /字符型strtemp.Format(%c,bt); /将字符送入临时变量strtemp存放m_strRecvData+=strtemp; /加入接收编辑框对应字符串CString temp=(rn); /显示完成后要自动换行m_strRecvData+=temp;UpdateData(FALSE); /更新编辑框内容3.我们添加发送按钮OnButtonSend()发送数据的过程/单击发送按钮的操作UpdateData(true); /读取编辑框内容m_cComm.put_Output(COleVariant(m_strSendData);/发送数据m_strSendData.Empty(); /发送后清空输入框UpdateData(false); /更新编辑框内容/对发送的数据进行强制类型转换,由CString 字符串数据转换为VARIANT 类型。串口现在在笔记本电脑上已经不多见了,USB口已经大行其道,另外VS2008下有serialport类,虽然还不了解,但是确实新趋势,总之,这个就算作最基础的练习吧。

      《c串口通信实例vs2008》由会员suns****4568分享,可在线阅读,更多相关《c串口通信实例vs2008》请在金锄头文库上搜索。

      点击阅读更多内容
    最新标签
    发车时刻表 长途客运 入党志愿书填写模板精品 庆祝建党101周年多体裁诗歌朗诵素材汇编10篇唯一微庆祝 智能家居系统本科论文 心得感悟 雁楠中学 20230513224122 2022 公安主题党日 部编版四年级第三单元综合性学习课件 机关事务中心2022年全面依法治区工作总结及来年工作安排 入党积极分子自我推荐 世界水日ppt 关于构建更高水平的全民健身公共服务体系的意见 空气单元分析 哈里德课件 2022年乡村振兴驻村工作计划 空气教材分析 五年级下册科学教材分析 退役军人事务局季度工作总结 集装箱房合同 2021年财务报表 2022年继续教育公需课 2022年公需课 2022年日历每月一张 名词性从句在写作中的应用 局域网技术与局域网组建 施工网格 薪资体系 运维实施方案 硫酸安全技术 柔韧训练 既有居住建筑节能改造技术规程 建筑工地疫情防控 大型工程技术风险 磷酸二氢钾 2022年小学三年级语文下册教学总结例文 少儿美术-小花 2022年环保倡议书模板六篇 2022年监理辞职报告精选 2022年畅想未来记叙文精品 企业信息化建设与管理课程实验指导书范本 草房子读后感-第1篇 小数乘整数教学PPT课件人教版五年级数学上册 2022年教师个人工作计划范本-工作计划 国学小名士经典诵读电视大赛观后感诵读经典传承美德 医疗质量管理制度 2 2022年小学体育教师学期工作总结 2022年家长会心得体会集合15篇
     
    收藏店铺
    关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
    手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
    ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.