comm.cpp

来自「向串口发送数据」· C++ 代码 · 共 72 行

CPP
72
字号
//COM.cpp
CCOM::CCOM()
{
}

CCOM::~CCOM()
{
}

BOOL CCOM::InitCOM()//弶巒壔孁岥
{
	DCB dCB;
	COMMTIMEOUTS ct;

	//摼摓懪?孁岥丆涹摼摓孁岥嬪暱
	hCOM = CreateFile( "COM1", GENERIC_READ | GENERIC_WRITE,
		0, NULL, OPEN_EXISTING, 0, NULL);
	if(hCOM == INVALID_HANDLE_VALUE)
		return FALSE;

	//弶巒壔孁岥丆READBUFFER榓WRITEBUFFER惀梡?帺屓掕?揑?槩岹
	SetupComm(hCOM, READBUFFER, WRITEBUFFER);
	PurgeComm(hCOM, PURGE_TXCLEAR|PURGE_RXCLEAR);

	//?抲DCB??
	if(!GetCommState(hCOM, &dCB))
	{
		CloseHandle(hCOM);
		return FALSE;
	}
	dCB.BaudRate = 38400;
	dCB.ByteSize = 8;
	dCB.Parity = NOPARITY;
	dCB.StopBits = ONESTOPBIT;
	if(!SetCommState(hCOM, &dCB))
	{
		CloseHandle(hCOM);
		return FALSE;
	}

	//?抲挻??
	ct.ReadIntervalTimeout = MAXDWORD;
	ct.ReadTotalTimeoutConstant = 0;
	ct.ReadTotalTimeoutMultiplier = 0;
	ct.WriteTotalTimeoutConstant = 0;
	ct.WriteTotalTimeoutMultiplier = 0;
	if(!SetCommTimeouts(hCOM, &ct))
	{
		CloseHandle(hCOM);
		return FALSE;
	}
	return TRUE;
}

BOOL CCOM::SendCOMCode(unsigned _int8 chCode[], int nNum)//幨孁岥
{
	DWORD dwWritenNum;
	return WriteFile(hCOM, chCode, nNum, &dwWritenNum, NULL);
}

DWORD CCOM::GetCOMData(unsigned char *pchBuffer)//?孁岥
{
	DWORD dwReadNum;
	ReadFile(hCOM, pchBuffer, READBUFFER, &dwReadNum, NULL);
	return dwReadNum;
}

void CCOM::CloseCOM()
{
	CloseHandle(hCOM);
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?