• 大小: 3KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-16
  • 语言: C/C++
  • 标签: C++  串口  RS232  

资源简介

用C++编写的串口类。调用winAPI函数。包含头文件windows.h、string。 void SetPortNumber(const ComPort PortNumberToSet); void SetBaudRate(const BaudRate BaudRateToSet); void SetStopBits(const StopBits StopBitsToSet); void SetParity(const ParityType ParityToSet); ComPort GetPortNumber(); BaudRate GetBaudRate(); StopBits GetStopBits(); ParityType GetParity(); bool Open(); bool IsOpen(); long IsRxData(); void Flush(); void Close(); unsigned long Read(char* ReadDataPtr); bool Write(const char* WriteDataPtr,const char WriteLen);

资源截图

代码片段和文件信息

//==============================================================================
//com class
//Edited by yangyong 2011/08/31
//Header: com.h
//==============================================================================
#include “com.h“
//==============================================================================
Com::Com():
itsPortHandle(INVALID_HANDLE_VALUE)
itsCharsAvailable(0)
itsPortNumber(cpCOM_1)
itsBaudRate(brB_9600)
itsByteSize(8)
itsParity(ptNoParity)
itsStopBits(sbOne)
{
}
//==============================================================================
Com::Com(ComPort portNumber):
itsPortHandle(INVALID_HANDLE_VALUE)
itsCharsAvailable(0)
itsPortNumber(portNumber)
itsBaudRate(brB_9600)
itsByteSize(8)
itsParity(ptNoParity)
itsStopBits(sbOne)
{
}
//==============================================================================
Com::Com(ComPort portNumber BaudRate buadRate):
itsPortHandle(INVALID_HANDLE_VALUE)
itsCharsAvailable(0)
itsPortNumber(portNumber)
itsBaudRate(buadRate)
itsByteSize(8)
itsParity(ptNoParity)
itsStopBits(sbOne)
{
}
//==============================================================================
Com::Com(ComPort portNumber BaudRate buadRate char byteSize):
itsPortHandle(INVALID_HANDLE_VALUE)
itsCharsAvailable(0)
itsPortNumber(portNumber)
itsBaudRate(buadRate)
itsByteSize(byteSize)
itsParity(ptNoParity)
itsStopBits(sbOne)
{
}
//==============================================================================
Com::Com(ComPort portNumber BaudRate buadRate char byteSize ParityType parity):
itsPortHandle(INVALID_HANDLE_VALUE)
itsCharsAvailable(0)
itsPortNumber(portNumber)
itsBaudRate(buadRate)
itsByteSize(byteSize)
itsParity(parity)
itsStopBits(sbOne)
{
}
//==============================================================================
Com::Com(ComPort portNumber BaudRate buadRate 
char byteSize ParityType parity StopBits stopBits):
itsPortHandle(INVALID_HANDLE_VALUE)
itsCharsAvailable(0)
itsPortNumber(portNumber)
itsBaudRate(buadRate)
itsByteSize(byteSize)
itsParity(parity)
itsStopBits(stopBits)
{
}
//==============================================================================
Com::~Com()
{
    this->Close(); 
}
//==============================================================================
bool Com::IsOpen()
{
    return (itsPortHandle != INVALID_HANDLE_VALUE);
}
//==============================================================================
bool Com::Open()
{
    std::string StrCom = “COM“;
    DCB dcbPort;

    if(IsOpen())
    {
        Close();
    }
    //将数字转变成字符,并通过append函数添加在字符串StrCom结尾
    //组合成串口号
    if((itsPortNumber >= 0) && (itsPortNumber <= 9))
    {
        StrCom.append(1(char)(itsPortNumber + ‘0‘));
        itsPortHandle = CreateFile(StrCom.c_str()
                                GENERIC_READ | GENERIC_WRITE
                                0
      

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2011-09-02 21:47  ComClass(串口类winAPI)\
     文件        7224  2011-09-02 19:10  ComClass(串口类winAPI)\Com.cpp
     文件        3755  2011-09-02 19:20  ComClass(串口类winAPI)\Com.h
     文件         444  2011-09-01 19:59  ComClass(串口类winAPI)\main.cpp

评论

共有 条评论