`
izuoyan
  • 浏览: 9223396 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SerialPort类连接串口

MFC 
阅读更多

一、VC6.0下,建立MFC(.exe)工程。

图1:建立工程

二、引入类文件:

1、把SerialPort.cpp和SerialPort.h文件复制到工程目录文件夹内。

2、点击"工程"菜单,“添加工程”子目录的“Files”子项。

3、选取工程目录文件夹内的SerialPort.cpp和SerialPort.h文件,点击确定按钮。

查看FileView视图内,已经成功添加相关类文件。

4、在SerialPortTestDlg.h文件内添加语句,引入SerialPort类。

  1. /*-----------------------------------------
  2. *SerialPortTestDlg.h文件
  3. *---------------------------------------*/
  4. #include"SerialPort.h"//添加CSerailPort类的头文件

三、声明类对象和接口状态变量。

  1. /*-----------------------------------------
  2. *SerialPortTestDlg.h文件
  3. *---------------------------------------*/
  4. classCSerialPortTestDlg:publicCDialog
  5. {
  6. //Construction
  7. public:
  8. CSerialPortm_SerialPort;//CSerailPort类对象
  9. BOOLm_bSerialPortOpened;//标志串口是否打开
  10. //自动生成代码省略……
  11. protected:
  12. //自动生成代码省略……
  13. };

四、界面设计和初始化代码。

1、设计界面

图2:设计界面

2、修改控件的ID,名称如图3所示。

3、添加控制变量:

“查看”菜单,进入“建立类向导”,弹出对话框,添加控件变量,如图3所示。

图3:添加控制变量

4、系统初始化代码

  1. /*-----------------------------------------
  2. *SerialPortTestDlg.cpp文件
  3. *---------------------------------------*/
  4. BOOLCSerialPortTestDlg::OnInitDialog()
  5. {
  6. CDialog::OnInitDialog();
  7. //TODO:Addextrainitializationhere
  8. /*-------------------------------------------------
  9. *初始化
  10. *-------------------------------------------------*/
  11. m_ctrlComboComPort.SetCurSel(0);//初始选择串口1
  12. //以下两句分别设置“打开串口”、“关闭串口”两个按状态的使能状态
  13. GetDlgItem(IDC_BUTTON_OPEN)->EnableWindow(!m_bSerialPortOpened);
  14. GetDlgItem(IDC_BUTTON_CLOSE)->EnableWindow(m_bSerialPortOpened);
  15. returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
  16. }

五、连接串口。

  1. /*-------------------------------------------------
  2. *打开串口
  3. *-------------------------------------------------*/
  4. voidCSerialPortTestDlg::OnButtonOpen()
  5. {
  6. //TODO:Addyourcontrolnotificationhandlercodehere
  7. intnPort=m_ctrlComboComPort.GetCurSel()+1;//得到串口号,想想为什么要加1
  8. if(m_SerialPort.InitPort(this,nPort,9600,'N',8,1,EV_RXFLAG|EV_RXCHAR,512))
  9. {//能正确打开串口
  10. m_SerialPort.StartMonitoring();
  11. m_bSerialPortOpened=TRUE;
  12. }
  13. else//不能正确打开串口时
  14. {
  15. AfxMessageBox("没有发现此串口或被占用");
  16. m_bSerialPortOpened=FALSE;
  17. }
  18. //按钮可用和不可用处理
  19. GetDlgItem(IDC_BUTTON_OPEN)->EnableWindow(!m_bSerialPortOpened);
  20. GetDlgItem(IDC_BUTTON_CLOSE)->EnableWindow(m_bSerialPortOpened);
  21. }

六、断开串口。

  1. /*-------------------------------------------------
  2. *关闭串口
  3. *-------------------------------------------------*/
  4. voidCSerialPortTestDlg::OnButtonClose()
  5. {
  6. //TODO:Addyourcontrolnotificationhandlercodehere
  7. m_SerialPort.ClosePort();//关闭串口
  8. m_bSerialPortOpened=FALSE;
  9. //按钮可用和不可用处理
  10. GetDlgItem(IDC_BUTTON_OPEN)->EnableWindow(!m_bSerialPortOpened);
  11. GetDlgItem(IDC_BUTTON_CLOSE)->EnableWindow(m_bSerialPortOpened);
  12. }
分享到:
评论

相关推荐

    (MFC)SerialPort类实现串口发送16进制数字

    总的来说,"(MFC)SerialPort类实现串口发送16进制数字"涉及到的知识点包括:MFC框架的理解、SerialPort类的使用、串口参数的设置、16进制数字与字节流的转换、串口通信的调试和监控,以及虚拟串口技术的应用。...

    SerialPort类的串口通信编程(VS2005编写)

    《SerialPort类的串口通信编程在VS2005中的实现》 串口通信是计算机通信技术中的一种基础方式,广泛应用于设备间的短距离、低速率数据传输。在Visual Studio 2005(VS2005)环境下,我们可以利用C++编程语言和.NET ...

    基于serialport类的串口通信程序

    在描述中提到的"多个基于serialport串口类的串口通信",可能是指利用`SerialPort`类创建了多个实例,分别管理不同的串口连接,或者实现了复用同一串口的并发处理。这通常涉及到多线程编程,确保在并发环境下串口操作...

    调用serialport类的简单串口测试

    本项目名为“调用serialport类的简单串口测试”,它提供了一个基础的串口测试程序,适合初学者了解和学习串口通信的基本原理和实践方法。 串口,也称为COM口,是计算机上的一种接口,用于与外部设备进行异步串行...

    C# serialport 串口发送与接收数据操作类

    C# SerialPort 串口发送与接收数据操作类是指通过使用 C# 语言中的 SerialPort 类来实现串口的发送和接收数据操作。该类提供了完整的串口操作功能,包括串口的打开、关闭、发送数据、接收数据等。 串口操作类 ...

    VC++ SerialPort类 串口调试程序vs2013工程

    总的来说,串口通信是连接硬件设备和软件的重要桥梁,而VC++中的SerialPort类则简化了这一过程。通过VS2013的集成开发环境,开发者可以方便地调试和测试串口应用程序,从而实现高效、可靠的通信。这个工程实例为学习...

    改进后的SerialPort类文件&串口调试助手.rar

    本文将深入探讨“改进后的SerialPort类文件”及其在串口调试中的应用,结合“串口调试助手”来提升串口通信的效率和准确性。 首先,让我们了解一下SerialPort类。在.NET框架中,SerialPort类是System.IO.Ports命名...

    SerialPort类控制串口

    本篇将详细阐述`SerialPort`类的使用,以及如何实现对串口的控制。 串口,也称为COM口,是计算机上的一种接口,用于与其他设备进行串行通信。在现代计算机中,虽然串口可能不再常见,但在某些工业应用、嵌入式系统...

    C# 调用SerialPort类读取和发送串口数据

    本篇文章将深入探讨如何利用C#的SerialPort类进行串口数据的读取和发送,这对于开发嵌入式系统、工业自动化、物联网设备等应用场景至关重要。 首先,我们需要了解SerialPort类的基本概念。SerialPort类是System.IO....

    WCF服务(SerialPort类实现串口通讯),在web程序中引用

    而SerialPort类是.NET Framework中的一个组件,用于与通过串行端口连接的硬件设备进行通信。标题提到在Web程序中引用SerialPort类,这意味着我们要在Web环境中实现串口通信功能。 **描述分析:** 描述进一步强调了...

    serialport类的串口调试助手

    本篇文章将深入探讨SerialPort类在串口调试中的应用,以及如何利用它实现接收和发送数据。 首先,我们要理解什么是串口(Serial Port)。在计算机硬件中,串口是一种用于连接外部设备的数据传输接口,如调制解调器...

    基于node-serialport的WEB串口通信 上位机工具

    【基于node-serialport的WEB串口通信上位机工具】是一种使用JavaScript和Node.js环境构建的串口通信解决方案,特别适用于需要通过Web界面进行串口数据交互的应用场景。这个工具利用了`node-serialport`库,它是一个...

    利用serialport类 实现串口通信 C++语言

    本文将详细探讨如何利用C++语言中的serialport类来实现串口通信。 串口通信,又称串行通信,是指数据以串行的方式一位一位地传输。它通常涉及到两个设备之间的通信,如计算机与打印机、模块或传感器之间的连接。C++...

    在C#中使用SerialPort类实现串口通信

    使用 SerialPort 类实现串口通信 在.NET Framework 2.0 中,微软提供了 SerialPort 类,该类主要实现串口数据通信等。SerialPort 类提供了多种属性和方法来实现串口通信。本文将详细介绍 SerialPort 类的主要属性和...

    串口通信SerialPort类c++

    在C++编程中,实现串口通信通常会使用`SerialPort`类,这是一个方便的接口,用于管理串行端口的打开、关闭、发送数据和接收数据等操作。本文将详细探讨如何使用C++的`SerialPort`类进行串口通信,并提供一些关键知识...

    C# SerialPort控件实现串口通信源代码

    在C#中,SerialPort类是System.IO.Ports命名空间的一部分,提供了丰富的功能,如打开、关闭串口,读取和写入数据,设置串口参数,以及处理数据接收事件。以下是一些使用SerialPort控件的基本步骤: 1. **创建...

    基于SerialPort类的串口参考代码

    `SerialPort`类通常是一个封装了串口操作的类库,提供了打开、关闭、读取和写入串口等基本功能。在提供的代码段中,我们看到一个名为`CCOMx64Dlg`的对话框类,它使用`SerialPort`类进行串口操作。以下是一些关键知识...

    使用 serialport类 创建的 串口开发小软件

    这个“使用serialport类创建的串口开发小软件”正是基于这个核心类构建的,旨在帮助开发者调试和监控串口通信。 **SerialPort类详解:** `SerialPort`类是.NET Framework的一部分,位于`System.IO.Ports`命名空间下...

    VS2005使用SerialPort类设计串口通讯程序.doc

    `SerialPort`类是.NET Framework提供的,它允许开发者轻松地与硬件设备进行串行通信,如串口打印机、传感器或其他通过串口接口连接的设备。 首先,为了使用`SerialPort`类,我们需要在代码中引入必要的命名空间: `...

    SerialPort_串口助手_log2ps_QT5_serialport_数据开发_

    《串口助手与数据开发:基于QT5的SerialPort实现》 在计算机编程领域,串行通信是一种常用的数据传输方式,特别是在嵌入式系统、工业自动化以及物联网设备中。"SerialPort_串口助手_log2ps_QT5_serialport_数据开发...

Global site tag (gtag.js) - Google Analytics