`
javasogo
  • 浏览: 1817064 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

vc读写rs232口

阅读更多

打开RS232:
HANDLE hComPort = CreateFile(
"COM1", //String,COM name. GENERIC_READ|GENERIC_WRITE, // access mode
0, // share mode
NULL, // security attributes
OPEN_EXISTING, // how to create
FILE_FLAG_OVERLAPPED,// file attributes
NULL); // handle to file with attributes to copy

if (hComPort == INVALID_HANDLE_VALUE)
return FALSE;

if (!GetCommState(hComPort, &dcb))
{
CloseHandle(hComPort);
return FALSE;
}
//设置通信参数
dcb.BaudRate = (DWORD)m_SysOption.nBaudRateModem;
dcb.ByteSize = (BYTE)m_SysOption.nByteSizeModem;
dcb.StopBits = (BYTE)m_SysOption.nStopBitsModem;
dcb.Parity = (BYTE)m_SysOption.nParityModem;
dcb.EvtChar = COMM_TAILOR;
dcb.fDtrControl = DTR_CONTROL_ENABLE;

if(!SetCommState(hComPort, &dcb))
{
CloseHandle(hComPort);
return FALSE;
}

if (!SetCommMask(hComPort, EV_RXFLAG))
{
CloseHandle(hComPort);
return FALSE;
}

//set com timeout
COMMTIMEOUTS CommTimeOuts;
CommTimeOuts.ReadIntervalTimeout = MAXDWORD;
CommTimeOuts.ReadTotalTimeoutMultiplier = 0;
CommTimeOuts.ReadTotalTimeoutConstant = 0;
CommTimeOuts.WriteTotalTimeoutMultiplier = 0;
CommTimeOuts.WriteTotalTimeoutConstant = 0;
if (!SetCommTimeouts(hComPort,&CommTimeOuts))
{
CloseHandle(hComPort);
return FALSE;
}

if (!PurgeComm(hComPort, PURGE_TXCLEAR|PURGE_RXCLEAR))
{
CloseHandle(hComPort);
return FALSE;
}

读取:
OVERLAPPED OVL;
memset(&OVL,0,sizeof(OVERLAPPED));
OVL.hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);
ReadFile(hComPort ,pBufRecv,dwToRead,&dwLen,&OVL)
输出:
OVERLAPPED OVL;
memset(&OVL,0,sizeof(OVERLAPPED));
OVL.hEvent = CreateEvent(NULL,TRUE,FALSE,NULL);
ReadFile(hComPort ,pBufRecv,dwToRead,&dwLen,&OVL)

WriteFile(hComPort ,pBufSend,dwLen,& dwLen, &OVL);//WIN98下,&OVL可以为NULL
//在NT或WIN2K下不能为NULL


分享到:
评论

相关推荐

    VC 串口通信 串口读写 com接口 rs232读写

    本文将深入探讨“VC串口通信”、“串口读写”、“COM接口”以及“RS232读写”等相关知识点。 首先,VC(Visual C++)是微软开发的一款强大的C++集成开发环境,它提供了丰富的类库和工具,使得开发者能够方便地创建...

    VC6.0实现RS232串口通信

    在本文中,我们将深入探讨如何使用Visual C++ 6.0(简称VC6.0)来实现RS232串口通信。RS232,全称是EIA/TIA-232标准,是一种广泛应用于设备间串行通信的接口标准。在VC6.0中,我们通常会借助MSComm控件来处理串口...

    VC串口通信 RS232 编程

    本文将详细探讨如何使用VC(Visual C++)进行RS232串口通信编程,以帮助你理解和实现相关项目。 RS232,全称为“Recommended Standard 232”,是定义串行二进制数据交换接口的一套标准,最初由电子工业协会(EIA)...

    vc6.0 rs232 teach

    标题中的“vc6.0 rs232 teach”暗示了这是一个关于使用Microsoft Visual C++ 6.0(简称VC6.0)进行串行通信(RS-232)编程的教学资源。在这个教学主题中,开发者将学习如何利用VC6.0这个经典的集成开发环境来设计...

    RS23程序.zip_Serial.dsw_VC 串口_Vc_rs232 program_urm37 v 3

    标题中的"RS232程序.zip_Serial.dsw_VC 串口_Vc_rs232 program_urm37 v 3"揭示了这个压缩包主要包含一个基于VC++(Visual C++)开发的串口通信程序,具体是针对RS232串行通信接口的。RS232是一种广泛使用的串行通信...

    VC串口通讯RS232 API函数实现

    在提供的压缩包文件"VC串口通讯API函数实现"中,可能包含了实现上述功能的示例代码,包括打开串口、设置参数、读写数据以及错误处理等。通过研究和理解这些代码,开发者可以更好地掌握在VC++中使用RS232 API实现串口...

    VC.rar_RS232 VC

    标题“VC.rar_RS232 VC”表明我们将会探讨如何在Visual C++(VC)环境中使用RS232通信协议。描述中提到的“MSComm控件”是Windows应用程序开发中的一个常用组件,用于处理串行通信。 首先,RS232,全称是EIA/TIA-...

    VC编写的RS232串口通信

    在IT领域,串行通信是计算机之间或者计算机与外部设备之间进行数据交换的一种常见方式,而RS232串口通信则是其中最基础且广泛使用的一种。本文将深入探讨使用VC++(Visual C++)来编写RS232串口通信程序的相关知识点...

    VC6.0实现的串口读写操作

    本文将深入探讨如何使用VC6.0实现串口读写,并结合提供的文件名进行分析。 首先,我们要理解串口通信的基本概念。串口通信是通过串行数据传输的方式进行设备间的通信,一般包括数据位、停止位、校验位等组成部分。...

    59530VC串口通信(RS232C)源程序

    总结来说,"59530VC串口通信(RS232C)源程序"是一个实现单片机与PC间串行通信的实例,它利用VC的编程环境和Windows API进行串口的读写操作,为学习和实践串口通信提供了有价值的参考。通过深入理解串口通信的原理和...

    RS232通讯的VC6 入门范例

    在本文中,我们将深入探讨如何使用Microsoft Visual C++ 6(简称VC6)进行RS232串行通信。RS232通讯是计算机硬件和设备之间常用的一种通信方式,尤其在工业自动化、数据采集系统等领域应用广泛。通过VC6,我们可以...

    C++ 串口通信 RS232 代码

    C++作为一门强大的编程语言,提供了多种库和方法来实现串口通信,其中RS232标准是串口通信的基础。本文将深入探讨C++如何实现RS232串口通信,以及多线程在串口通信中的应用。 首先,RS232是EIA(电子工业协会)制定...

    rs232

    在描述中提到的"用VC编写的RS232串口",表明这是一个使用Microsoft Visual C++(VC)开发的程序,它实现了对RS232串行通信接口的控制。VC是一种强大的Windows平台上的C++编程工具,能够方便地创建桌面应用程序,包括...

    VC++串口通信源代码(VC6.0)

    有rs232,同步串口通信、用串口实现警报系统,VC用单文档方式实现、用于VC的DLL库,使用异步通讯方式,具体使用方法请看源码、用于串口读写数据用的程序源代码、在VC++6.0中用MSComm控件编程,可以实现串口接收数据和...

    comVC 串口读写VC源程序,内容完整,可实现Communication 通讯编程70万

    "comVC 串口读写VC源程序"是一个专注于串口通信的项目,它为Visual C++(简称VC)开发者提供了完整的源代码,用于实现串行端口的数据读取和写入功能。这一资源对于那些需要进行Communication通讯编程的开发者来说,...

    vs2005环境下能完美运行的rs232串口程序

    3. **Windows API函数**:在VS2005中,开发者通常会利用Windows API函数来处理串口通信,如`CreateFile`打开串口,`SetCommState`配置串口参数,`ReadFile`和`WriteFile`进行读写操作,以及`CloseHandle`关闭串口。...

    SCOMMV23.rar_vc6串口通讯_vc6串口

    在VC6中实现串口通讯,通常会涉及Windows API函数,如CreateFile、SetCommState、ReadFile和WriteFile等,用于打开串口、设置波特率、数据位、奇偶校验和停止位,以及读写数据。 在VC6环境中开发串口应用,开发者...

    VC++ RS232 RS485串口通信源代码_中文注释

    本文将深入探讨VC++环境下实现RS232和RS485串口通信的相关知识点,并结合源代码进行详细解析。 首先,RS232是一种古老的串行通信接口标准,适用于点对点的短距离通信。它定义了数据信号、控制信号、时钟信号等的...

Global site tag (gtag.js) - Google Analytics