智能车调试--串口上位机程序的编制[转]

智能车调试--串口上位机程序的编制[转]
智能车调试--串口上位机程序的编制[转]

我们飞思卡尔智能车的比赛已经接近尾声了,23号就要去上海决赛了呵。论文基本完成,Duuboo已经排版结束,排出来还真挺长的。

整个过程都挺累的,持续的时间还这么长,最累的恐怕只有惠哥了,这些比赛完再说吧。这里介绍下在Donald写的一个串口调试程序,主要是方便我们查看运行起来的小车的内部参数。

程序的作用是接收来自Freescale MC9SDG128单片机发送来的数据,并显示出来。分为两部分。一部分是普通的数据,ASCII数据,另一部分是实时的图像,也是以ASCII方式传输。程序可通过“模式”按钮设置工作在这两种模式。当进入CCD模式时,通过“连接”按钮触发DG128单片机发送图像信息,这时“连接”按钮变为“断开”,可通过其触发DG128单片机停止发送,降低单片机内部资源消耗。

程序中串口部分的编程参考的是《Visual C++串口通信技术与工程实践》,李现勇编著。书中对串口的编程讲得很不错,除了C的,还有VB的。详细请参考该书。这里介绍本程序的一部分程序代码。

一、添加串口控件

本程序是在VC6下MFC实现,所以添加一个串口控件,方法是选择Project菜单下Add To Project子菜单中的 Components and Controls选项,在弹出的对话框中进入Registered ActiveX Controls目录,选择Microsoft Communication s Control, version 6.0,,Insert到Project中就行了。然后可在窗体中添加串口控件,接着Ctrl+W到ClassWizard中为该控件添加一个对应的变量就行。

二、串口工作方式的改变

串口的工作方式有很多种,比如串口的选择、波特率、校验位、数据位和停止位等。这些的设置可以通过组合框实现,实现方法基本一样,Donald就以波特率说明下。

之前已经为波特率组合框对象IDC_COMBO_BAUD添加对应变量m_cboBaud。在程序主窗体初始化时写有如下代码。

// combo Baud init

m_cboBaud.AddString(_T("1200"));

m_cboBaud.AddString(_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())

{

case 0:

m_strBaud = _T("1200");

break;

case 1:

m_strBaud = _T("2400");

break;

case 2:

m_strBaud = _T("4800");

break;

case 3:

m_strBaud = _T("9600");

break;

case 4:

m_strBaud = _T("115200");

break;

default:

m_strBaud = _T("9600");

}

InitCommPort();

通过switch选择不同的波特率。case的顺序按照初始化添加时的顺序,开始为0。

三、OnComm()消息处理函数

在串口控件中,最重要的就是OnComm()函数,这个函数是用来处理串口消息事件的,每当串口接收到数据,就会产生一个串口接收数据缓冲区中“有字符”的消息事件,只要在该函数内写好处理这些字符的代码就可以。

在Donald的这个程序里,该程序代码如下。代码的结构(switch结构)是参考该书。

VARIANT variant_inp;

COleSafeArray safearray_inp;

CByteArray arraySend;

LONG len,k;

BYTE rxdata[1024]; //An 8-bit integer that is not signed for Receive CString strAdd;

int i;

m_strComRcv.Empty();

switch(m_com.GetCommEvent())

{

case 1: // comEvSend

arraySend.RemoveAll();

arraySend.SetSize(m_strEditTrn.GetLength());

for (i = 0; i < m_strEditTrn.GetLength(); i++)

{

arraySend.SetAt(i, m_strEditTrn.GetAt(i));

}

m_com.SetOutput(COleVariant(arraySend));

break;

case 2: // comEvReceive

variant_inp = m_com.GetInput(); // Read buffer

safearray_inp = variant_inp; // VARIANT to ColeSafeArray

len = safearray_inp.GetOneDimSize(); // Get effective length

// Store to EDIT_REV

for(k = 0; k < len; k++)

{

safearray_inp.GetElement(&k, rxdata + k); // Change to BYTE array BYTE bt = *(char*)(rxdata+k); // BYTE type

strAdd += bt;

}

if (m_bCcdMode == FALSE){

m_myEdit.AppendText(strAdd);

} else{

g_strRcv = strAdd;

g_bReceive = TRUE;

}

break;

default: // Error

m_com.SetOutBufferCount(0);

//AfxMessageBox("Com Err");

break;

}

使用控件编程就是相对简单,系统的串口消息发生时,程序自动调用该函数。由switch语句判断,参数1为发送,参数2为接收。Donald主要介绍下接收的思路,由于接收时有两种模式,所以通过m_bCcdMode成员变量记录这两种模式。当其为FALSE时直接实时显示在窗口右边,就像Windows处事的超级终端。如果是TRUE,则不显示,将信息放到一个全局变量g_strRcv。其实尽量不要用全局变量,但Donald暂时也不懂线程间通信,只能简单这么做了。并置位全局变量g_bReceive。该变量是在CCD模式下一个线程处理的依据,实时显示图像。

四、文本框实时显示和发送串口字符

为了能实现Windows超级终端文本框的功能,我们必须手动修改Edit类,然后用CWnd::SubclassDlgItem提供的动态连接功能,将原来的文本框和修改的类连接起来。

利用ClassWizard新建一个CEdit类自己命名(如CMyEdit),并在这个类中添加WM_CHAR消息处理函数和。确定后,再在新建类的头文件中手动添加void Ap pendText (LPCSTR pText)函数,用于将串口收到的字符输出在文本框中。以及添加CByteArray arraySend成员变量,用于显示字符的临时存储。

Donald程序中,CMyEdit::AppendText(LPCSTR pText)的内容如下:

int nLen = GetWindowTextLength ();

CString strTmp = pText;

SetFocus ();

if(strTmp.GetAt(0) == (char)0X08){

SetSel (nLen - 1, nLen);

strTmp.Delete(0);

Clear();

} else{

SetSel (nLen, nLen);

ReplaceSel (pText);

}

修改CMyEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)函数,该函数实现在文本控件中输入一字符时自动由串口向外发送。代码如下:

arraySend.RemoveAll();

arraySend.SetSize(1);

arraySend.SetAt(0, (char)nChar);

((CFSonPCDlg*)AfxGetApp()->m_pMainWnd)->m_com.SetOutput(COleVariant (arraySend));

//CEdit::OnChar(nChar, nRepCnt, nFlags);

程序的第四行语句必是向Donald的窗体串口控件关联变量m_com输出字符,注意要调用COleVariant()函数。

五、实时接收图像线程

众所周知,如果一个程序用了while(1)语句的话,那么这个程序将是一个死循环,将严重占用CPU资源,而这里,我们的程序又需要用while来实时地接收来自单片机的串口信息,于是,最好的解决方法就是用线程。

调用线程的思路是这样,当程序处于文本框模式时,线程是关闭的。如果进行C CD模式,还没“连接”,程序状态同上,如果进行“连接”状态,则创建实时接收线程,并设置一定时器以在一定时间未接收到来自串口的握手信号时自动断开。如果从“连接”状态手动或自动“断开”,则将线程终止,向单片机发送终止传送图像信号并关闭定时器。至此,完成显示图像流程。

线程中首先是发送握手信号FS_CONNECTION。

arraySend.SetSize(1);

arraySend.SetAt(0, FS_CONNECTION);

g_bOvertime = FALSE;

// Send Connection Signal

((CFSonPCDlg*)AfxGetApp()->m_pMainWnd)->m_com.SetOutput(COleVariant (arraySend));

然后无限循环等待接收,用了两层while语句,第一个等待来自单片机的握手信号,第二个处理接收图像。

while(1)

{

// Wait for receiving

((CFSonPCDlg*)AfxGetApp()->m_pMainWnd)->GetDlgItem(IDC_STATIC_NOW) ->SetWindowText("等待...");

g_bReceive = FALSE;

SetTimer(AfxGetApp()->GetMainWnd()->m_hWnd, 1, 1000, NULL);

g_bOvertime = TRUE;

while(!g_bReceive);

KillTimer(AfxGetApp()->GetMainWnd()->m_hWnd, 1);

g_bReceive = FALSE;

g_bOvertime = FALSE;

if (-1 == g_strRcv.Find(FS_CONNECTION)){ // Not found

continue;

}else{

((CFSonPCDlg*)AfxGetApp()->m_pMainWnd)->GetDlgItem(IDC_STATIC_NOW) ->SetWindowText("连接完成, 接收中");

row = 0;

col = 0;

while(1)

{

SetTimer(AfxGetApp()->GetMainWnd()->m_hWnd, 1, 1000, NULL);

g_bOvertime = TRUE;

g_bReceive = FALSE;

while(!g_bReceive);

KillTimer(AfxGetApp()->GetMainWnd()->m_hWnd, 1);

g_bReceive = FALSE;

g_bOvertime = FALSE;

//AfxMessageBox(g_strRcv);

n = g_strRcv.Find(FS_TRANFINISH);

if(-1 == n){ // Not finish

n = g_strRcv.GetLength();

for(i = 0; i < n; i++){

cRcv[row][col++] = g_strRcv.GetAt(i);

if(col == MAX_CCD_Y){

col = 0;

if(++row == MAX_CCD_X){

row = 0;

}

}

}

}else{ // Finish

//n = g_strRcv.Find(FS_TRANFINISH);

for(i = 0; i < n; i++){

cRcv[row][col++] = g_strRcv.GetAt(i);

if(col == MAX_CCD_Y){

col = 0;

if(++row == MAX_CCD_X){

row = 0;

}

}

}

((CFSonPCDlg*)AfxGetApp()->m_pMainWnd)->m_ccdGraph.ChangeBit(cRc v);

((CFSonPCDlg*)AfxGetApp()->m_pMainWnd)->GetDlgItem(IDC_STATIC_NO W)

->SetWindowText("接收完毕");

// Show it

((CFSonPCDlg*)AfxGetApp()->m_pMainWnd)->m_ccdGraph.ShowGraph( ((CFSonPCDlg*)AfxGetApp()->m_pMainWnd)->m_dcViewS);

((CFSonPCDlg*)AfxGetApp()->m_pMainWnd)->m_dcViewB.StretchBlt( 0, 0, MAX_CCD_X * 4, MAX_CCD_Y * 4,

((CFSonPCDlg*)AfxGetApp()->m_pMainWnd)

->m_dcViewS.GetWindow()->GetDC(),

0, 0, MAX_CCD_X, MAX_CCD_Y, SRCCOPY);

break;

}

}

}

}

结束语

整个程序的总体思路便是如上,并没有对程序的每一个细节都作介绍。书上和网上也能查到很多各种串口的程序,写得相当优秀,Donald的程序比较粗糙,但基本能完成我们智能小车的调试功能,目的就达到了。如果感兴趣,可向Donal d要源码。

经典的串口调试工具源代码(一)

经典的串口调试助手源代码(一) Dim OutputAscii As Boolean Dim InputString As String Dim OutputString As String '============================================================================== ======= ' 变量定义 '============================================================================== ======= Option Explicit ' 强制显式声明 Dim ComSwitch As Boolean ' 串口开关状态判断 Dim FileData As String ' 要发送的文件暂存Dim SendCount As Long ' 发送数据字节计数器 Dim ReceiveCount As Long ' 接收数据字节计数器Dim InputSignal As String ' 接收缓冲暂存 Dim OutputSignal As String ' 发送数据暂存 Dim DisplaySwitch As Boolean ' 显示开关 Dim ModeSend As Boolean ' 发送方式判断

Dim Savetime As Single ' 时间数据暂存延时用Dim SaveTextPath As String ' 保存文本路径 ' 网页超链接申明 Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long Private Sub CloseCom() '关闭串口 On Error GoTo Err If MSComm.PortOpen = True Then MSComm.PortOpen = False ' 先判断串口是否打 开,如果打开则先关闭 txtstatus.Text = "STATUS:COM Port Cloced" ' 串口状态显示 mnuconnect.Caption = "断开串口" cmdswitch.Caption = "打开串口" 'ImgSwitch.Picture = LoadPicture("f:\我的VB\串口调试软件\图片\guan.jpg") ' 显示串口已经关闭 的图标 ImgSwitchoff.Visible = True ImgSwitchon.Visible = False Err: End Sub Private Sub UpdateStatus() If MSComm.PortOpen Then StatusBar1.Panels(1).Text = "Connected" mnuautosend.Caption = "自动发送" mnuconnect.Caption = "断开串口" Else StatusBar1.Panels(1).Text = "断开串口" mnuautosend.Caption = "disautosend" mnuconnect.Caption = "打开串口" End If StatusBar1.Panels(2).Text = "COM" & https://www.360docs.net/doc/724498305.html,mPort StatusBar1.Panels(3).Text = MSComm.Settings If (OutputAscii) Then StatusBar1.Panels(4) = "ASCII" Else StatusBar1.Panels(4) = "HEX" End If ' On Error GoTo Err If ChkAutoSend.Value = 1 Then ' 如果有效则,自动发送

51单片机串口调试实验(C语言)

//以下程序都是在VC++6.0 上调试运行过的程序,没有错误,没有警告。 //单片机是STC89C52RC,但是在所有的51 52单片机上都是通用的。51只是一个学习的基础平台,你懂得。 //程序在关键的位置添加了注释。 /****************************************************************************** * * 实验名: 串口实验 * 使用的IO : P2 * 实验效果: 将接收到发送回电脑上面。 * 注意: ******************************************************************************* / #include void UsartConfiguration(); /****************************************************************************** * * 函数名: main * 函数功能: 主函数 * 输入: 无 * 输出: 无 ******************************************************************************* / void main() { UsartConfiguration(); while(1) { } } /****************************************************************************** * * 函数名:UsartConfiguration() * 函数功能:设置串口 * 输入: 无 * 输出: 无 ******************************************************************************* / void UsartConfiguration() { SCON=0X50; //设置为工作方式1

(通信企业管理)经典串口调试助手源程序及串口通信设置精编

(通信企业管理)经典串口调试助手源程序及串口通 信设置

串口调试助手源程序 及编程详细过程 作者:龚建伟2001.6.20 能够任意转载,但必须注明作者和说明来自https://www.360docs.net/doc/724498305.html,,不得作为商用 目次: 1.建立项目 2.于项目中插入MSComm控件 3.利用ClassWizard定义CMSComm类控制变量 4.于对话框中添加控件 5.添加串口事件消息处理函数OnComm() 6.打开和设置串口参数 7.发送数据 如果你仍没有下载源程序,又对本文有兴趣,请立即下载 于众多网友的支持下,串口调试助手从2001年5月21日发布至今,短短壹个月,于全国各地累计下载量近5000人次,于近200多个电子邮件中,20多人提供了使用测试意见,更有50多位朋友提出要串口调试助手的源代码,为了答谢谢朋友们的支持,公开推出我最初用VC控件MSComm编写串口通信程序的源代码,且写出详细的编程过程,姑且叫串口调试助手源程序V1.0或VC串口通讯源程序吧,我相信,如果你用VC编程,那么有了这个代码,就能够轻而易举地完成串口编程任务了。(也许本文过于详细,高手就不用见) 开始吧: 1.建立项目:打开VC++6.0,建立壹个基于对话框的MFC应用程序SCommTest(和我源代码壹致,等会你会方便壹点); 2.于项目中插入MSComm控件选择Project菜单下AddToProject子菜单中的ComponentsandControls…选项,于弹出的对话框中双击RegisteredActiveXControls项(稍等壹会,这个过程较慢),则所有注册过的ActiveX控件出当下列表框中。选择MicrosoftCommunicationsControl,version6.0,,单击Insert按钮将它插入到我们的Project中来,接受缺省的选项。(如果你于控件列表中见不到MicrosoftCommunicationsControl,version6.0,那可能是你于安装VC6时没有把ActiveX壹项选上,重新安装VC6,选上ActiveX就能够了),

飞思卡尔智能车电磁组信号采集

?пㄖ ???? ??? ? ??? ?? ? ? 1? ? ??? ? 哖 世?? ???? ??? ??? ??? ? ??? ㄎ? ?? ??????仁??20kHz??????⌒ ???仁?VLF? ??⌒???仁仁?? ? 仁 ?仁??⌒????3kHz?30kHz?⌒?? 100km?10km? ?? 3.1?? ??? ? ? ?? ? ? ?а ? ?????? ??? ? ? ? ? ?? ??オ???? ??? ??? ? ? ??? ? ? ???о? ??? ??? ??? ? ? ? ? ?? ? ??? й ?????? ? ? ?? ? ???? ?н ????? ? ? на???? ??? ? ? ?? ? ? ?? а ? ???? ?? ??? ?? ? ??? ? ? ?? ?? ??? ??? ?? ??仁? ??? ?? ???? ??? ?? ?? ????? ?? ? ?? ?????? ↓ ? ?? ?? ↓ ? ?? ?? ??? ???? ? ??? ?? ? ? ?? ? ↓ ?? ?? ? ? ? ? ?? っ ?? ???/& ????? ??? ? ? ??/&? ?? ? ?

?йㄐ ???? ?? ?LC? ?? ? ? ?? ?? ? ?? ??????? ??? ??AD???? 享 ?? 儈?↓? фн?? ?? ???AD? ???? ? ?? ?? 3.3 ?? ?? ???????? ?? 傼 ??н ??? ? ? н ? ?? ?? ?н ? н? ? ? ??? ? ?? ?нっ ???? ?????? ? ф? 儈? ? ?

KEIL中如何用虚拟串口调试串口程序

KEIL中如何用虚拟串口调试串口程序 发表于2008/5/7 15:30:22 以前没接触过串口,一直都以为串口很复杂。最近在做一个新项目,用单片机控制GSM模块。单片机和GSM模块接口就是串口。调试完后觉得串口其实很简单。“不过如此”。这可能是工程师做完一个项目后的共同心态吧。下面详细介绍下如何用虚拟串口调试串口发送接收程序。 需要用到三个软件:KEIL,VSPD XP5(virtual serial ports driver xp5.1虚拟串口软件),串口调试助手。 1、首先在KEIL里编译写好的程序。 2、打开VSPD,界面如下图所示: 左边栏最上面的是电脑自带的物理串口。点右边的add pair,可以添加成对的串口。一对串口已经虚拟互联了,如果添加的是COM3、COM4,用COM3发送数据,COM4就可以接收数据,反过来也可以。 3、接下来的一步很关键。把KEIL和虚拟出来的串口绑定。现在把COM3和KEIL 绑定。在KEIL中进入DEBUG模式。在最下面的COMMAND命令行,输入MODE COM3 4800,0,8,1(设置串口3的波特率、奇偶校验位、数据位、停止位,打开COM3串口,注意设置的波特率和程序里设置的波特率应该一样)ASSIGN COM3 SOUT(把单片机的串口和COM3绑定到一起。因为我用的单片机是AT892051,只有一个串口,所以用SIN,SOUT,如果单片机有几个串口,可以选择S0IN,S0OUT,S1IN,S1OUT。)

4、打开串口调试助手 可以看到虚拟出来的串口COM3、COM4,选择COM4,设置为波特率4800,无校验位、8位数据位,1位停止位(和COM3、程序里的设置一样)。打开COM4。 现在就可以开始调试串口发送接收程序了。可以通过KEIL发送数据,在串口调试助手中就可以显示出来。也可以通过串口调试助手发送数据,在KEIL中接收。这种方法的好处是不用硬件就可以调试。这是网上一篇文章介绍的方法,联系我实际的使用做了整理。有用的着的人就不用继续摸索了

串口调试助手VC++6.0程序

串口调试助手源程序 及编程详细过程 作者:龚建伟 2001.6.20 可以任意转载,但必须注明作者和说明来自https://www.360docs.net/doc/724498305.html,,不得作为商用 目次: 1.建立项目 2.在项目中插入MSComm控件 3.利用ClassWizard定义CMSComm类控制变量 4.在对话框中添加控件 5.添加串口事件消息处理函数OnComm() 6.打开和设置串口参数 7.发送数据 在众多网友的支持下,串口调试助手从2001年5月21日发布至今,短短一个月,在全国各地累计下载量近5000人次,在近200多个电子邮件中,20多人提供了使用测试意见,更有50多位朋友提出要串口调试助手的源代码,为了答谢谢朋友们的支持,公开推出我最初用VC控件MSComm编写串口通信程序的源代码,并写出详细的编程过程,姑且叫串口调试助手源程序V1.0或VC串口通讯源程序吧,我相信,如果你用VC编程,那么有了这个代码,就可以轻而易举地完成串口编程任务了。(也许本文过于详细,高手就不用看) 开始吧: 1.建立项目:打开VC++6.0,建立一个基于对话框的MFC应用程序SCommTest(与我源代码一致,等会你会方便一点); 2.在项目中插入MSComm控件选择Project菜单下Add To Project子菜单中的 Components and Controls…选项,在弹出的对话框中双击Registered ActiveX Controls项(稍等一会,这个过程较慢),则所有注册过的ActiveX控件出现在列表框中。选择Microsoft Communications Control, version 6.0,,单击Insert按钮将它插入到我们的Project中来,接受缺省的选项。(如果你在控件列表中看不到Microsoft Communications Control, version 6.0,

智能车电磁环境制作

第五届全国大学生智能汽车竞赛 20KHz 电源参考设计方案 (竞赛秘书处技术组版本1.0) 第五届全国大学“飞思卡尔杯”智能汽车竞赛新增加了“电磁组”。根据比赛技术要求,电磁组竞赛,需要选手设计的智能车能够检测到道路中心线下电线中20KHz交表电流产生的磁场来导引小车沿着道路行驶。在平时调试和比赛过程中需要能够满足比赛技术要求的20KHz的交流电源驱动赛道中心线下的线圈。本文档给出了电源设计参考方案,参赛队伍可以根据这些参考设计方案自行设计制作所使用电源。 一、 电源技术指标要求: 根据《竞赛比赛细则》附件三关于电磁组赛道说明,20KHz电源技术要求如下: 1、驱动赛道中心线下铺设的0.1-0.3mm直径的漆包线; 2、频率范围:20K±2K; 3、电流范围:50-150mA; 下图是赛道起跑区示意图,在中心线铺设有漆包线。 图1 竞赛跑道起跑区示意图

首先分析赛道铺设铜线的电抗,从而得到电源输出的电压范围。 我们按照普通的练习赛道总长度50,使用直径为0.2mm漆包线。在30摄氏度下,铜线的电阻率大约为 0.0185欧姆平方毫米/米。计算可以得到中心线的电阻大约为29.4欧姆。 按照导线电感量计算机公式: 4 2ln0.75() l L l nH d ?? =×? ?? ?? 。其中l, d的单位 均为cm。可以计算出直径为0.2mm,长度50米的铜线电感量为131微亨。对应20KHz下,感抗约为16.5欧姆。 可以看出,线圈的电感量小于其电阻值。由于导线的电感量与铺设的形状有关系,上述计算所得到的电感量不是准确数值。另外,我们可以在输出时串接电容来抵消电感的感抗。所以估算电源电压输出范围的时候,我们不再特别考虑线圈的电感对于电流的影响。 为了方便设计,我们设计电源输出电压波形为对称方波。由于线圈电感的影响,线圈中的电流为上升、下降沿缓变的方波波形。如下图所示 图2 线圈驱动电压与电流示意图 对于电阻为29.4欧姆的赛道导线,流过100mA的电流,电压峰值应该大于3V。考虑到赛道长度有可能进一步增加、漆包线的直径减少等原因,设计电源输出电压的峰值为6V。在输出电流为150mA的时候,电源输出功率大约为0.9W。 二、 电源组成 电源电路包括振荡电路、功率输出电路、恒流控制电路以及电源等组成。 如下图所示:

VBNET开发全功能串口调试助手

https://www.360docs.net/doc/724498305.html, 开发全功能串口调试助手(含完整工程) 小记:https://www.360docs.net/doc/724498305.html, 的串口通信用了很长时间了,也只用 Write 和Read 这样的方 法,以前都是用这种方式做上位机软件, 如此足矣。而前几天研究GSM 模块时对 串口返回的数据总是把握不好,参考开发板附送的例程,发现采用 SerialPort 的DataReceived 事件,可以实现中断触发式的数据接收。于是想到要自己做一 个串口调试助手,在实现基本功能的前提下增加一些方便自己调试的功能。 经过 断断续续的编写,就做成了下面这个小软件: 这个软件能够实现串口调试助手的全部功能,经过通信测试,数据接收性能 不亚于呼啸工作室的SComAssistant2.2,通过加大输入缓冲区,可以满足大量 数据接收。 https://www.360docs.net/doc/724498305.html, 的串口通信主要使用 VS 自带的SerialPort 控件,而不是早先的 MSComm 更具有兼容性,这也是很久以前就放弃 VB 改用.NET 的直接原因。该控 件的主要方法、属性如下(该数据来自 VS 的MSD 帮助库):

想要通过串口收发数据,就需要对串口进行配置,包括设置端口、波特率、数据格式(如COM端口、9600bps、8位数据位、无校验位、1位停止位)等属性,之后通过Open方法打开串口。打开串口可通过手动指定,也可以使用GetPortNames 方法获取计算机中存在的串口。如果打开出错,则可能是串口不存在或者已被占用。下面是相应代码: Private SubSerialPortOpen() On Error GoToErr If SerialPort.IsOpen = True ThenSerialPort.Close() '避免重复打开端 口 SerialPort.Ope n() LabelCOMStatus.Text ="串口已打开" Exit Sub Err: MsgBox(‘ 串口不存在或已被占用!" + vbNewLine + ErrorToString()) ' 出现错误,显示错误信息 En dSub 如果想要在串口中支持中文字符收发,则可在初始化时设置串口控件的编码: SerialPort.E ncodi ng = System.Text.E ncodi ng.Default 发送数据通过Write方法来完成,由于串口调试助手需要支持文本和16进制, 需要加入转换代码: Private SubButtonSendData_Click( ByVal sender AsSystem.Object, ByVal e AsSystem.EventArgs) Handles ButtonSendData.Click On Error GoToErr

串口调试助手使用方法

串口调试助手使用方法 你可以试试串口监控器,一个功能强大,非常易用的软件。 串口监控器是一个免费的多功能串口通讯监控软件,它能够多种方式显示,接收,分析通讯数据;能够以多种灵活方式发送数据;功能强大,操作简便,在串口通讯监控,设备通讯测试中,能够有效提高工作效率。 主要功能如下: 接收数据: 1. 以十六进制方式显示接收到的数据。 2. 以字符方式显示接收到的数据。 3. 数据帧自动识别,分行显示。 4. 接收数据自动换行设置。 5. 显示或隐藏数据帧的接收时间。 6. 自动清除,自动保存接收到的数据。 7. 接收数据个数计数。 发送数据: 1. 十六进制方式发送数据。 2. 字符串方式发送数据。 3. 发送“发报窗口”当前光标行的数据帧。 4. 循环发送“发报窗口”当前光标行的数据帧。 5. 循环发送“发报窗口”固定行的数据帧。 6. 循环依次发送“发报窗口”的多行数据帧。(设置起始行,行数) 7. 触发发送,接收到“发报窗口”某一行数据,触发发送“发报窗口”另一行数据。 8. 发送数据个数计数。 实用增强功能: 1. 强大易用的进制转换功能。 2. 智能识别当前光标处数据帧的行号,“字符”或“十六进制数”的个数。 3. 智能计算当前选择的“字符”或“十六进制数”的个数。 4. 强大的数据查找功能。 5. 定时保存,定时清除数据。 6. 根据自己的喜好,灵活变换操作界面。

应用场合: 1. 截取和分析设备之间通讯数据流。 2. 串行外围设备硬件开发。 3. 串行设备驱动程序开发。 4. 调试和测试设备和设备之间的串行通讯过程。 5. 记录和分析RS232/422/485通信过程。 6. 模拟某设备通讯过程,对另外设备进行通讯测试。

串口调试助手c开发

1.建立项目: 打开VC+ + 6.0,建立一个基于对话框的MFC应用程序SCommTest(与我 源代码一致,等会你会方便一点); 2.在项目中插入MSComm控件 选择Project菜单下Add To Project子菜单中的Componentsand Controls,选项,在弹出的对话框中双击Registered ActiveXControls项(稍等一会,这个过程较慢),则所有注册过的ActiveX控件出现在列表框中。选择Microsoft Communications Control,version6.0,,单击Insert 按钮将它插入到我们的Project 中来,接受缺省的选项。(如果你在控件列表中看不到Microsoft Communications Control, version 6.0,那可能是你在安装VC6时没有把ActiveX 一项选上,重新安装VC6,选上ActiveX就可以了),这时在ClassView 视窗中就可以看到CMSComm类了,(注意:此类在ClassWizard中看不到,重构clw文件也一样),并且在控件工具栏Controls中出现了电话图标(如图1所示),现在要做的是用鼠标将此图标拖到对话框中,程序运行后,这个图标是看不到的。3.利用ClassWizard定义CMSComm类控制对象 打开ClassWizard- >Member Viariables 选项卡,选择CSCommTestDlg^,为IDC_MSCOMM1添加控制变量:m_ctrlCom m,这时你可以看一看,在对话框头文件中自动加入了//{{AFX_INCLUDES()#include "mscomm.h" //}}AFX_INCLUDES (这时运行程序,如果有错,那就再从头开始)。 4 .在对话框中添加控件 向主对话框中添加两个编辑框,一个用于接收显示数据ID为 IDC_EDIT_RXDATA另一个用于输入发送数据,ID为IDC_EDIT_TXDAT A再添加一个按钮,功能是按一次就把发送编辑框中的内容发送一次,将其ID设为 IDC_BUTTON_MANUALSEND别忘记了将接收编辑框的Prop erties->Styles 中把Miltiline和Vertical Scroll属性选上,发送编辑框若你想输入多行文字,也可选上Miltiline。

电磁组智能车恒磁式20KHZ信号源设计导图

现在我们借助电磁组用的20KHZ的信号发生器看看能学到些什么。 信号发生器分三个部分组成,20K信号发生器、功率输出部分(功率输出可以采用多种方式,我们在这里只讨论用分立元件组成的H桥)、恒流源部分。20K信号的发生有多种方式,可以使用单片机也可以使用555还可以使用其他的振荡电路(教材上有详细的介绍)。下面我们主要讨论一下H桥和恒流控制。 这是一个H桥功率输出+恒流电路,现在我们把它拆分成两部分来看。首先是H桥的主体如下图所示。 这是上臂由PNP三极管和下臂由NPN三极管构成的H桥。其原理是在三极管工作在关闭和饱和两种状态的基础下,当控制Q1和Q4导通并且另外两只三极管截至的情况下电流会从负载(RL)的左侧流向右侧(红线方向);同理当Q2和Q3导通Q1和Q4截至的时候电流会从负载的右侧流向左侧(绿线方向)。 让NPN三极管工作在饱和的状态(当开关使)只要使其基极电流足够大就可以了(不可太大会烧坏管子的),当Vbe大于导通电压时集电极和发射极导通。一般NPN三极管当开关使的电路如下图所示。 与NPN三极管不同的是PNP三极管的Vbe为负压时(电流从发射极流向基极)发射极和集电极导通。一般PNP三极管当开关使的电路如下图所示。

通过观察这两个开关电路可以发现NPN三极管开关电路的负载比三极管更靠近电源正极,而PNP三极管开关电路的负载比三极管更靠近地。为什么要这么做呢,如果放反了会怎么样呢,以NPN三极管为例。 我们都知道NPN三极管正常工作时发射极电位是小于基极电位的,所以上图电路中的三极管是工作在放大状态下的。这个电路的好处在于基极电流很小(输入阻抗很大),基极电流近似等于(基极电压-导通电压)/负载电阻/β。在共集放大电路(在学习共集放大电路的时候不妨也顺便看看共基放大电路)和推挽电路中会看到它的身影。这个电路稍微改造一下就变成了一个最简单的(之一吧)恒流源。 流过负载电阻RL的电流近似恒定为(Vref-导通电压)/Rfb。那么这个电路是如何恒流的呢,反馈电阻Rfb(在这里就不叫负载电阻了)是关键。我们都知道在RL在一定范围内变化时(这点很重要,RL如果太大下文就不成立了)三极管的集电极电流=基极电流*β,集电极电流与RL无关,但是β会随着三极管工作产生的热量变化,所以β值的变化是恒流最大的敌人。好在这里有Rfb,当β增大时集电极电流增大即流过Rfb的电流就会增大所以导致三极管发射极电压升高,进而导致基极电流变小使集电极电流稳定下来。这就是所谓的负反馈。可以把这个电路抽象成一个串接在主回路上的可调电阻器。

串口调试助手代码分析42

第5章串口调试助手代码分析 1、建立基于对话框的工程SCOMM 2、绘制界面,如下图: 接收区 串口组合框:IDC_COMBO_COMSELECT,m_Com 波特率组合框:IDC_COMBO_SPEED,m_Speed 停止位组合框:IDC_COMBO_STOPBITS,m_StopBits 数据位组合框:IDC_COMBO_DATABITS,m_DataBits 校验位组合框:IDC_COMBO_PARITY,m_Parity 十六进制显示(接收):IDC_CHECK_HEXRECIEVE,m_ctrlHexReceieve 接收编辑框:IDC_EDIT_RECIVE ,m_ReceiveData m_ctrlReceiveData Style:Vertical Scroll MultiLine 打开串口IDC_BUTTON_OPENPORT,m_ctrlOpenPort 串口开关标志图标IDC _STATIC_OPENOFF,m_ctrlIconOpenoff 数据文件保存路径IDC _EDIT_SA VEPATH,m_strCurPath 保存显示数据文件路径IDC _EDIT_SA VEPATH, m_ctrlSavePath 接收计数IDC_STATIC_RXCOUNT ,m_ctrlRXCOUNT 发送区 …。。。。。。。。。。。。。。 3、添加CSeraiPort类文件 将类文件SerialPort.h SerialPort.cpp 复制到工程所在文件夹中(选择改进

后的类),然后单击VC 6.0菜单Projrct -> Add to Projrct ->Files… ,再在打开的文件选择对话框中选择SerialPort.h 和SerialPort.cpp ,点击OK,就把类文件加入当前工程,并在SCOMMDlg.h 中加入头文件,#include "SerialPort.h",通过上述步骤就在当前工程中加入了CSeraiPort类。 4、完成串口消息处理函数OnCommunicatiom 在CserailPort 类中有多个串口事件可以响应。在一般串口编程中,只需要处理WM_COMM_RXCHAR消息就可以了,该类所有的消息均需要人工添加消息处理函数。我们将处理函数名定义为OnComm()。首先在SCOMMDlg.h 中添加串口字符接收消息WM_COMM_RXCHAR(串口接收缓冲区内有一个字符)响应函数的声明:如下图 然后,在SCOMMDlg.cpp文件中进行WM_COMM_RXCHAR消息映射: 如下图; 接着,在SCOMMDlg.cpp 文件中加入函数OnCommunication(WPARAM ch, LPARAM port)的实现,暂不添加代码。 LONG CSCOMMDlg::OnCommunication(WPARAM ch, LPARAM port) { return 0; } 以上步骤需要手工完成。 至此完成了程序的对话框模板,在工程中插入了串口操作类CserailPort类。5、添加串口初始化及关闭 程序中有两种方法大开串口,一是程序启动,调用OnInitDialog()函数,就可以打开串口,缺省的串口号为COM1,如果COM1不存在或占用,就会给出提示;另外,单击“打开串口”按钮也可以打开串口。 //在初始化中打开串口 BOOL CSCOMMDlg::OnInitDialog() { m_nBaud=9600;//波特率 m_nCom=1;//串口号 m_cParity='N';//奇偶校验

Keil串口调试技巧

1楼主:有关Keil软件仿真的串口调试技巧 贴子发表于:2008/10/29 8:43:55 引言 在单片机系统中,串口(UART,通用异步收发接口)是一个非常重要的组成部分。通常使用单片机串口通过RS232/RS485电平转换芯片与上位机连接,以进行上位机与下位机的数据交换、参数设置、组成网络以及各种外部设备的连接等。RS232/RS485串行接口总线具有成本低、简单可靠、容易使用等特点,加上其历史悠久,所以目前应用仍然非常广泛;特别对于数据量不是很大的场合,串口通信仍然是很好的选择,有着广阔的使用前景。 在单片机编程中,串口占了很重要的地位。传统方式串口程序的调试,往往是利用专用的单片机硬件仿真器。在编写好程序后,利用仿真器来设置断点,观察变量和程序的流程,逐步对程序进行调试,修正错误。使用硬件仿真器的确是很有效的方法,但是也有一些缺点: 很多仿真器不能做到完全硬件仿真,因而会造成仿真时正常,而实际运行时出现错误的情况;也有仿真不能通过,但是实际运行正常的情况。 对于一些较新的芯片或者是表面贴装的芯片,要么没有合适的仿真器或仿真头;要么就是硬件仿真器非常昂贵,且不容易买到。 有时由于设备内部结构空间的限制,仿真头不方便接入。 有的仿真器属于简单的在线仿真型,仿真时有很多限制。例如速度不高,实时性或稳定性不好,对断点有限制等,造成仿真起来不太方便。 1 调试前的准备工作 下面介绍一种利用Keil的软件仿真功能来实现51单片机串口调试用户程序的方法。使用这种方法,无需任何硬件仿真器,甚至都不需要用户电路板。所需的只是: ①硬件。1台普通计算机(需要带有2个标准串口)和1根串口线(两头都是母头,连线关系如图1所示)。 ②串口软件可以是自己编写的专用调试或上下位机通信软件,也可以是通用的串口软件(如串口助手、串口调试等),主要用来收发数据。如果没有合适的串口调试软件,则可使用笔者编写的一个免费的串口小工具TurboCom。除了与其他软件一样的数据收发功能外,它还有定时轮流发送自定义数据帧和自动应答(接收到指定数据帧后,自动返回相应的数据帧)这两个很有用的功能,特别适合于老化测试。这个小工具可以从https://www.360docs.net/doc/724498305.html,下载。 2 基本调试命令介绍 这个串口调试方法主要是利用了Keil强大的软件仿真功能。在新版本(高于6.0)的Keil软件中,增强了软件的仿真能力,可以利用软件仿真更多的单片机功能。在这些功能中,其中有一个很重要的功能就是利用计算机的串口来模拟单片机的串口(这不同于很多软件在仿真时使用的激励文件方式,可以直接与其他串口进行通信,更加方便、灵活)。首先要介绍仿真时需要使用的两个命令:ASSIGN和MODE。 2.1 ASSIGN命令

串口调试助手C++开发

1.建立项目: 打开VC++6.0,建立一个基于对话框的MFC应用程序SCommTest(与我源代码一致,等会你会方便一点); 2.在项目中插入MSComm控件 选择Project菜单下Add To Project子菜单中的 Components and Controls…选项,在弹出的对话框中双击Registered ActiveX Controls项(稍等一会,这个过程较慢),则所有注册过的ActiveX 控件出现在列表框中。选择Microsoft Communications Control, version 6.0,,单击Insert按钮将它插入到我们的Project中来,接受缺省的选项。(如果你在控件列表中看不到Microsoft Communications Control, version 6.0,那可能是你在安装VC6时没有把ActiveX一项选上,重新安装VC6,选上ActiveX就可以了),这时在ClassView视窗中就可以看到CMSComm类了,(注意:此类在ClassWizard中看不到,重构clw文件也一样),并且在控件工具栏Controls中出现了电话图标(如图1所示),现在要做的是用鼠标将此图标拖到对话框中,程序运行后,这个图标是看不到的。

3.利用ClassWizard定义CMSComm类控制对象 打开ClassWizard->Member Viariables选项卡,选择CSCommTestDlg类,为IDC_MSCOMM1添加控制变量:m_ctrlComm,这时你可以看一看,在对话框头文件中自动加入了//{{AFX_INCLUDES() #include "mscomm.h" //}}AFX_INCLUDES (这时运行程序,如果有错,那就再从头开始)。 4.在对话框中添加控件 向主对话框中添加两个编辑框,一个用于接收显示数据ID为IDC_EDIT_RXDATA,另一个用于输入发送数据,ID为IDC_EDIT_TXDATA,再添加一个按钮,功能是按一次就把发送编辑框中的内容发送一次,将其ID设为IDC_BUTTON_MANUALSEND。别忘记了将接收编辑框的Properties->Styles中把Miltiline和Vertical Scroll属性选上,发送编辑框若你想输入多行文字,也可选上Miltiline。 再打开ClassWizard->Member Viariables选项卡,选择CSCommTestDlg 类,为IDC_EDIT_RXDATA添加CString变量m_strRXData,为

飞思卡尔智能车电磁组程序员成长之路(未完待续)

飞思卡尔智能车电磁组程序员成长之路 1.飞思卡尔智能车小车入门 智能汽车电磁组简介: 第五届全国大学“飞思卡尔杯”智能汽车竞赛新增加了“电磁组”。根据比赛技术 要求,电磁组竞赛,需要选手设计的智能车能够检测到道路中心线下电线中20KHz 交 变电流产生的磁场来导引小车沿着道路行驶。在平时调试和比赛过程中需要能够满足比 赛技术要求的 20KHz 的交流电源驱动赛道中心线下的线圈。同时参赛选手需要自行设 计合适的电磁传感器来检测赛道信息完成智能寻迹功能。 智能车制作是一个涵盖电子、电气、机械、控制等多个领域和学科的科技创新活动。简单点来说可以将其分为硬件电路(包括电源、MUC 控制部分、电机驱动、传感器)、机械、算法三方面的设计。电磁组在机械方面可以参照光电组的设计方案,这里不再赘述。本设计指导只讲述20KHZ 电源、电磁传感器设计方案以及部分算法。 智能车对单片机模块需求: 飞思卡尔单片机资源:

智能车涉及到IO模块,中断模块,PWM模块,DMA模块,AD模块等。在车模调试中还有必须的模块。如SCI模块、定时器模块,SPI模块等。其中还涉及到一些算法和数据的存储和搬移。一个好程序框架对智能车的制作过程中会达到事半功倍的效果。但是就智能车这样系统来说,如果完全专门移植一个操作系统或者写一个程序的bootload,感觉有一些本末倒置,如果有成熟的,可以借用的,那样会比较好。 2.电磁传感器的使用 20KHz电源参考设计方案: 电源技术指标要求: 根据官网关于电磁组赛道说明,20KHz 电源技术要求如下: 1.驱动赛道中心线下铺设的 0.1-0.3mm 直径的漆包线; 2.频率围:20K±2K; 3.电流围:50-150mA; 图 2.1 是赛道起跑区示意图,在中心 线铺设有漆包线。 首先分析赛道铺设铜线的电抗,从而得 到电源输出的电压围。我们按照普通的练习 赛道总长度 50m,使用直径 0.2mm 漆包线。在30 摄氏度下,铜线的电阻率大约为 0.0185 欧姆平方毫米/米。计算可以得到中心线的电阻大约为 29.4 欧姆。 按照导线电感量计算机公式: 其中 l, d 的单位均为 cm。可以计算出直径为 0.2mm,长度 50 米的铜线电感量为131 微亨。对应 20KHz 下,感抗约为 16.5 欧姆。

飞思卡尔智能车比赛电磁组路径检测设计方案

飞思卡尔智能车比赛电磁组路径检测设计方案电磁组竞赛车模 路径检测设计参考方案 (竞赛秘书处 2010-1,版本 1.0) 一、前言 第五届全国大学生智能汽车竞赛新增加了电磁组比赛。竞赛车模需要能够通 过自动识别赛道中心线位置处由通有 100mA 交变电流的导线所产生的电磁场进行路径检测。除此之外在赛道的起跑线处还有永磁铁标志起跑线的位置。具体要求请参阅《第五届智能汽车竞赛细则》技术文档。 本文给出了一种简便的交变磁场的检测方案,目的是使得部分初次参加比赛 的队伍能够尽快有一个设计方案,开始制作和调试自己的车模。本方案通过微型车模实际运行,证明了它的可行性。微型车模运行录像参见竞赛网站上视频文件。 二、设计原理 1、导线周围的电磁场 根据麦克斯韦电磁场理论,交变电流会在周围产生交变的电磁场。智能汽车 竞赛使用路径导航的交流电流频率为 20kHz,产生的电磁波属于甚低频(VLF) 电磁波。甚低频频率范围处于工频和低频电磁破中间,为 3kHz,30kHz,波长为 100km,10km。如下图所示: 图 1:电流周围的电磁场示意图

导线周围的电场和磁场,按照一定规律分布。通过检测相应的电磁场的强度 和方向可以反过来获得距离导线的空间位置,这正是我们进行电磁导航的目的。 由于赛道导航电线和小车尺寸 l 远远小于电磁波的波长,,电磁场辐射能量很小(如果天线的长度 l 远小于电磁波长,在施加交变电压后,电磁波辐射功率正比于天线长度的四次方),所以能够感应到电磁波的能量非常小。为此,我们将导线周围变化的磁场近似缓变的磁场,按照检测静态磁场的方法获取导线周围的磁场分布,从而进行位置检测。 由毕奥-萨伐尔定律知:通有稳恒电流 I 长度为 L 的直导线周围会产生磁场,距离导线距离为 r 处 P 点的磁感应强度为: 图 2 sin直线电流的磁场 , d, ,(0 , 4 10, 7 TmA 1 ) B , ,, cos,1 2 ,。 (1) ,1 4 r 由此得: B , cos, 4 r 4 r

C++课程设计 串口调试助手

目录 【内容摘要】 (2) 【关键词】 (2) 1 开发语言及开发平台简介 (3) 1.1 开发语言 (3) 1.1.1 C语言 (3) 1.1.2 C++语言 (3) 1.2 开发平台 (4) 1.2.1 Microsoft Visual C++ (4) 1.2.2 C++ Builder (5) 2 软件开发过程 (6) 2.1 开发所需要的控件 (6) 2.1.1 按钮控件 (6) 2.1.2 文本控件 (6) 2.1.3 串口控件 (6) 2.1.4 选择控件 (7) 2.2 数据发送设计 (7) 2.3 数据接收设计 (9) 3 软件使用说明 (11) 4 软件测试 (13) 4.1 辅助工具 (13) 4.2 发送测试 (13) 4.3 接收测试 (13) 5 总结 (15) 致谢 (16) 参考文献 (17) 附录主要程序 (18) 串口发送程序 (18) 串口接收程序 (19) 【Abstract】 (21) 【Key Words】 (21)

串口调试助手设计 专业:电子科学与技术学号:XXXXXXXXXXX 学生姓名:X X X 指导老师姓名:X X X 【内容摘要】串口调试助手是串口调试相关工具,网络上有很多串口调试助手,界面不同,功能各异,使用的开发语言和开发平台也不相同。有的使用C语言开发,有的使用C++语言开发,还有的即使用C语言也使用C++语言;开发平台有的使用Visual C++,有的使用C++ Builder等。本软件使用C语言和C++语言,开发平台使用C++Builder软件。该串口调试助手串口调试助手版支持常用的110 ~ 256000bps波特率,能设置校验、数据位和停止位,能以ASCII码或十六进制接收或发送数据或字符(包括中文),能发送文本文件(*.txt 文本),可以任意设定自动发送周期,并能将接收数据保存成文本文件(*.txt),是做项目开发调试串口的好工具。 【关键词】串口;C++;C++ Builder;控件;测试;

串口调试步骤

【转】JCBus串口调试助手简明教程 2009-03-04 20:33 JCBus串口调试助手是最为您着想的串口调试助手: -自动添加 CRC-16校验码 -按需存储 8条调试消息,软件关闭后自动存储 -收发对应且时间戳精确到1毫秒,易于查找 -突出显示设备返回消息的数据部分(JCBus或部分Modbus协议) -灵活解析各种数据类型 -精确查找所有可用串口,并支持USB虚拟串口 -在线设置串口名称、波特率、奇偶校验、数据位、停止位等 -智能收发多种格式,可以手动/有限次/无限次自动发送/自动接收,发送间隔长达596小时 -全面支持 Windows98、2000、XP、Vista等多种操作系统 衷心希望她能成为您工作与学习中的好帮手。以下请阅读其简明教程: 1. 双击运行软件 如果出错,请先安装Microsoft .NET Framework 2.0,即微软.NET 2.0虚拟机。 第一次运行时,请先阅读使用协议,并单击“我同意”。如图1.1所示。

图1.1 第一次运行时请阅读使用协议,单击“我同意” 图1.2 JCBus串口调试助手的工作区域 随后,可以看到如图1.2所示的软件工作区域: 1.1 标题栏:显示为“JCBus串口调试助手” 1.2 菜单栏:包括“文件”、“帮助”等菜单项目 1.3 串口参数设置区:用于设置串口名称、波特率、校验位、数据位和停止 位等 1.4 调试结果解析区:用于解析调试过程中的数据,使数据在16进制、10 进制等之间转换。 1.5 调试区:分“消息应答”和“自动接收”两种调试方式。 A. “消息应答”:软件向设备发送一条消息后接收设备回应的信 息; B. “自动接收”:软件只负责接收设备发送的消息并在界面上显 示出来。 两种方式可以通过点击“消息应答”或者“自动接收”标签页来切换。 1.6 显示区:处于调试区的中间位置 1.7 调试操作区:记录“消息应答”方式的详细调试操作

相关文档
最新文档