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

串口数据通信程序实现(SerialPort类方法)

 
阅读更多

一、数据的接收和显示

1、在SerialPortTestDlg.h文件中添加OnComm函数声明,该函数在串口“字符接收消息”后进行处理,字符显示。

  1. /*-------------------------------------
  2. *SerialPortTestDlg.h文件
  3. *-------------------------------------*/
  4. classCSerialPortTestDlg:publicCDialog
  5. {
  6. //Construction
  7. public:
  8. CSerialPortm_SerialPort;//CSerailPort类对象
  9. BOOLm_bSerialPortOpened;//标志串口是否打开
  10. //省略自动生成代码...
  11. protected:
  12. //Generatedmessagemapfunctions
  13. //{{AFX_MSG(CSerialPortTestDlg)
  14. //省略自动生成代码...
  15. /*----------------------------------------
  16. *OnComm函数声明,该函数在串口“字符接收”
  17. *消息后进行相应处理,显示问题。
  18. *----------------------------------------*/
  19. afx_msgLONGOnComm(WPARAMch,LPARAMport);
  20. afx_msgvoidOnButtonOpen();
  21. afx_msgvoidOnButtonClose();
  22. afx_msgvoidOnButtonSend();
  23. //}}AFX_MSG
  24. DECLARE_MESSAGE_MAP()
  25. };

2、在SerialPortTestDlg.cpp文件中进行消息对应(字符接收消息WM_COMM_RXCHAR)。

  1. /*----------------------------------------------
  2. *SerialPortTestDlg.cpp文件
  3. *----------------------------------------------*/
  4. BEGIN_MESSAGE_MAP(CSerialPortTestDlg,CDialog)
  5. //{{AFX_MSG_MAP(CSerialPortTestDlg)
  6. ON_WM_SYSCOMMAND()
  7. ON_WM_PAINT()
  8. ON_WM_QUERYDRAGICON()
  9. /*----------------------------------------------
  10. *WM_COMM_RXCHAR消息<---->OnComm函数映射声明
  11. *----------------------------------------------*/
  12. ON_MESSAGE(WM_COMM_RXCHAR,OnComm)
  13. ON_BN_CLICKED(IDC_BUTTON_OPEN,OnButtonOpen)
  14. ON_BN_CLICKED(IDC_BUTTON_CLOSE,OnButtonClose)
  15. ON_BN_CLICKED(IDC_BUTTON_SEND,OnButtonSend)
  16. //}}AFX_MSG_MAP
  17. END_MESSAGE_MAP()

3、在SerialPortTestDlg.cpp文件中加入OnComm函数实现。

  1. /*------------------------------------------------------
  2. *OnComm函数实现
  3. *触发条件:当输入缓冲区有字符时,有消息触发
  4. *执行结果:字符接收,并显示在文本框m_strEditReceiveMsg
  5. *------------------------------------------------------*/
  6. LONGCSerialPortTestDlg::OnComm(WPARAMch,LPARAMport)
  7. {
  8. m_strEditReceiveMsg+=ch;//接收字符
  9. UpdateData(FALSE);//将接收到的字符显示在接收编辑框中
  10. return0;
  11. }

二、数据的发送

  1. /*-----------------------------------------------------------
  2. *功能:发送字符
  3. *执行条件:点击“发送”按钮时(ButtonSend)
  4. *执行结果:文本框m_strEditSendMsg中文字被发送。
  5. *----------------------------------------------------------*/
  6. voidCSerialPortTestDlg::OnButtonSend()
  7. {
  8. //TODO:Addyourcontrolnotificationhandlercodehere
  9. if(!m_bSerialPortOpened)return;//检查串口是否打开,如果没打开,退出
  10. //发送信息处理
  11. UpdateData(TRUE);//读入编辑框中的数据
  12. m_SerialPort.WriteToPort((LPCTSTR)m_strEditSendMsg);//发送数据
  13. }
三、总结:

连接串口成功后,如果输入缓冲区有字符,将会被显示到接收文本框内,如果点击发送按钮,将会把输入文本框内数据发送到该串口的输出缓冲区内。数据将会通过该串口,与连接的另一个串口进行数据通信。

分享到:
评论

相关推荐

    vc++基于VS2010用SerialPort类实现串口通信

    串行通信是指数据以串行方式(一位接一位)传输,常见的串口接口有RS-232、RS-485和USB到串口转换器。在VC++中,我们可以通过SerialPort类来操控串口,这个类是Microsoft .NET Framework提供的,因此在使用时需要...

    基于serialport类的串口通信程序

    本篇将详细介绍基于`SerialPort`类的串口通信程序,并结合给出的文件名进行解析。 `SerialPort`类是.NET Framework中的一个关键组件,位于`System.IO.Ports`命名空间下。这个类提供了全面的功能,包括打开、关闭...

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

    `System.IO.Ports.SerialPort` 类是.NET Framework提供的一种方便的接口,用于处理串行端口通信。在这个项目中,我们将会深入探讨如何使用`SerialPort`类来实现串口通信,基于Visual Studio 2005开发环境。 首先,...

    C# Winform 基于SerialPort类实现串口通信,ASCII数据收发(打开、关闭、接收、发送)

    本教程将详细介绍如何基于C#的Winform应用程序,利用`SerialPort`类实现串口通信,特别是ASCII数据的收发功能。 首先,我们需要在项目中引用`System.IO.Ports`命名空间,以便使用`SerialPort`类。在Winform设计界面...

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

    在这个"VC++ SerialPort类串口调试程序vs2013工程"中,我们将探讨如何在Visual Studio 2013环境下使用SerialPort类进行串口通信的开发。 首先,让我们了解什么是SerialPort类。SerialPort是.NET Framework中System....

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

    在MFC中,SerialPort类通常基于CAsyncSocket类,它提供了异步操作的接口,可以用来读取和写入串口数据。要使用SerialPort类,你需要创建一个类对象,配置串口参数(如波特率、数据位、停止位、校验位),然后打开...

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

    使用 SerialPort 类设计串口通讯程序可以方便地实现串口通讯的多种功能,并且可以快速地转换到以 SerialPort 类为核心的串口通讯的设计方法。 在设计串口通讯程序时,需要注意以下几点: * 需要在程序代码起始位置...

    调用serialport类的简单串口测试

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

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

    本文将详细探讨如何使用SerialPort类实现串口通信,包括发送数据、接收数据、手动与自动发送、ASCII码和16进制的发送与接收,以及字符串转16进制的函数。 1. **SerialPort类介绍** SerialPort类是.NET Framework...

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

    总的来说,C#的SerialPort类为串口通信提供了一种便捷且灵活的方式,通过它,开发者可以轻松实现与各种串行设备的通信。无论是简单的文本传输还是复杂的二进制数据交互,SerialPort都能满足需求。在实际项目中,结合...

    Serialport接收并保存串口的数据

    综上所述,"Serialport接收并保存串口的数据"项目涵盖了串口通信的基本原理,SerialPort类的使用,数据校验,文件I/O操作等多个重要知识点。对于想要学习或实践串口通信的开发者来说,这是一个很好的起点。

    串口通信编程实例 serialPort

    - **串口通信**:串口,也称为串行接口,通过一根数据线依次传输比特位。与并行通信相比,串口占用的硬件资源较少,但传输速度相对较慢。 - **波特率**:表示数据传输的速度,如9600、19200、38400等,单位为比特...

    VC基于SerialPort类的串口调试助手源程序代码包含10个串口

    这个源程序代码提供了对10个串口的支持,这使得开发者能够同时监测和控制多个串行通信接口,对于硬件调试、设备通信测试以及物联网应用开发等领域非常有用。 首先,让我们了解什么是SerialPort类。SerialPort是.NET...

    vb2005 串口通信 SerialPort

    Visual Basic 2005(VB2005)和Visual Studio 2005(VS2005)提供了对串口通信的支持,通过SerialPort类库,开发者可以方便地实现应用程序与外部硬件设备的数据交换。以下是对VB2005中SerialPort通信的详细讲解。 ...

    串口通信SerialPort类测试程序

    通过理解并运用以上知识,开发者可以利用SerialPort类在VC++环境下实现可靠的串口通信。在进行串口通信的项目时,记得进行充分的测试,确保在不同波特率、数据格式和连接设备下都能正常工作。同时,注意串口资源的...

    C#串口通信、使用api和serialPort2种方式

    本文将深入探讨C#中实现串口通信的两种方法:使用Windows API和SerialPort类。 首先,我们来理解串口通信的基本概念。串口通信,也称为串行通信,是指数据以位(bit)为单位,逐位进行传输的方式。在C#中,串口通信...

    C# 232通讯---SerialPort类

    RS-232,全称为EIA/TIA-232,是一种定义了电气特性和接口信号的串行通信协议,常用于PC与外部设备之间的短距离通信。 描述中提到"可以自动获取本机com口,实现数据发送",这意味着该程序能检测到本地计算机上的可用...

    C#SerialPort类串口通讯程序并绘制实时数据图

    在C#编程环境中,`System.IO.Ports.SerialPort`类是用于串行通信的重要工具,它允许开发者通过串行端口与外部设备进行数据交换。本项目中的"C#SerialPort类串口通讯程序并绘制实时数据图"示例,旨在展示如何使用...

    用c#操作串口进行有效的数据读写,使用serialport类进行编程

    SerialPort类是.NET Framework提供的一种强大工具,使得开发者可以方便地在C#应用中控制串行端口,实现数据的读写。本文将深入探讨如何利用SerialPort类进行有效的串口操作。 1. **SerialPort类的介绍** ...

    串口通讯类(SerialPort类)

    串口通讯,也称为串行通信,是一种古老但仍然广泛使用的通信方式,尤其在工业控制、嵌入式系统以及一些需要低速数据传输的应用中。在C++编程中,实现串口通讯通常需要借助特定的库或类。在这个场景中,我们提到的...

Global site tag (gtag.js) - Google Analytics