串口上位机程序的编制

串口上位机程序的编制

ID:22738372

大小:77.00 KB

页数:7页

时间:2018-10-31

串口上位机程序的编制_第1页
串口上位机程序的编制_第2页
串口上位机程序的编制_第3页
串口上位机程序的编制_第4页
串口上位机程序的编制_第5页
资源描述:

《串口上位机程序的编制》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、我们飞思卡尔智能车的比赛已经接近尾声了,23号就要去上海决赛了呵。论文基本完成,Duuboo已经排版结束,排出来还真挺长的。整个过程都挺累的,持续的时间还这么长,最累的恐怕只有惠哥了,这些比赛完再说吧。这里介绍下在Donald写的一个串口调试程序,主要是方便我们查看运行起来的小车的内部参数。程序的作用是接收来自FreescaleMC9SDG128单片机发送来的数据,并显示出来。分为两部分。一部分是普通的数据,ASCII数据,另一部分是实时的图像,也是以ASCII方式传输。程序可通过“模式”按钮设置工作在这两种模式。当进入CCD模式时,通过“连接”按钮触发DG128单片机发送图像信息,

2、这时“连接”按钮变为“断开”,可通过其触发DG128单片机停止发送,降低单片机内部资源消耗。程序中串口部分的编程参考的是《VisualC++串口通信技术与工程实践》,李现勇编著。书中对串口的编程讲得很不错,除了C的,还有VB的。详细请参考该书。这里介绍本程序的一部分程序代码。一、添加串口控件本程序是在VC6下MFC实现,所以添加一个串口控件,方法是选择Project菜单下AddToProject子菜单中的ComponentsandControls选项,在弹出的对话框中进入RegisteredActiveXControls目录,选择MicrosoftCommunicationsCont

3、rol,version6.0,,Insert到Project中就行了。然后可在窗体中添加串口控件,接着Ctrl+W到ClassWizard中为该控件添加一个对应的变量就行。二、串口工作方式的改变串口的工作方式有很多种,比如串口的选择、波特率、校验位、数据位和停止位等。这些的设置可以通过组合框实现,实现方法基本一样,Donald就以波特率说明下。之前已经为波特率组合框对象IDC_COMBO_BAUD添加对应变量m_cboBaud。在程序主窗体初始化时写有如下代码。 //comboBaudinit m_cboBaud.AddString(_T("1200")); m_cboBaud.Ad

4、dString(_T("2400")); m_cboBaud.AddString(_T("4800")); m_cboBaud.AddString(_T("9600")); m_cboBaud.AddString(_T("115200")); m_cboBaud.SetCurSel(3); m_strBaud=_T("9600");再在ClassWizard中为IDC_COMBO_BAUD添加CBN_SELCHANGE消息处理函数,再在函数中添加代码。 switch(m_cboBaud.GetCurSel()) { case0:  m_strBaud=_T("1200");  bre

5、ak; case1:  m_strBaud=_T("2400");  break; case2:  m_strBaud=_T("4800");  break; case3:  m_strBaud=_T("9600");  break; case4:  m_strBaud=_T("115200");  break; default:  m_strBaud=_T("9600"); } InitCommPort(); 通过switch选择不同的波特率。case的顺序按照初始化添加时的顺序,开始为0。三、OnComm()消息处理函数在串口控件中,最重要的就是OnComm()函数,这个函数是用

6、来处理串口消息事件的,每当串口接收到数据,就会产生一个串口接收数据缓冲区中“有字符”的消息事件,只要在该函数内写好处理这些字符的代码就可以。在Donald的这个程序里,该程序代码如下。代码的结构(switch结构)是参考该书。 VARIANTvariant_inp; COleSafeArraysafearray_inp; CByteArrayarraySend; LONGlen,k; BYTErxdata[1024];//An8-bitintegerthatisnotsignedforReceive CStringstrAdd; inti; m_strComRcv.Empty(); 

7、switch(m_com.GetCommEvent()) { case1://comEvSend  arraySend.RemoveAll();  arraySend.SetSize(m_strEditTrn.GetLength());  for(i=0;i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。