// CommComunication_Receive.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "Comm.h"
int main()
{
CComm cComm;
char szCommName[] = "COM3";
if (cComm.OpenComm(szCommName))
{
#if 0
DCB dcb;
//GetCommState(cComm.hComm, &dcb);//获取端口状态信息
//定义初始化dcb,用dcb的参数对串口的参数进行设置
dcb.BaudRate = 9600;
dcb.ByteSize = 8;
dcb.Parity = 0;
dcb.StopBits = 1;
//if (SetCommState(cComm.hComm, &dcb))
char szDCBparam[50];
sprintf_s(szDCBparam, "baud=%d parity=%c data=%d stop=%d", CBR_9600, 'N', 8, 1);
if (GetCommState(cComm.hComm, &dcb) && BuildCommDCB(szDCBparam, &dcb))
{
cout << "SetCommState OK." << endl;
}
system("pause");
#endif
/*定义一个COMMTIMEOUTES结构并初始化设置参数*/
COMMTIMEOUTS ctTimSet;
ctTimSet.ReadIntervalTimeout = 0;
ctTimSet.ReadTotalTimeoutMultiplier = 0;
ctTimSet.ReadTotalTimeoutConstant = 0;
ctTimSet.WriteTotalTimeoutMultiplier = 0;
ctTimSet.WriteTotalTimeoutConstant = 0;
/*用接构当中的参数设置串口超时参数*/
if (cComm.SetCommunicationTimeouts(ctTimSet.ReadIntervalTimeout, ctTimSet.ReadTotalTimeoutMultiplier, ctTimSet.ReadTotalTimeoutConstant, ctTimSet.WriteTotalTimeoutMultiplier, ctTimSet.WriteTotalTimeoutConstant))
{
DWORD BaudRate = CBR_9600;
BYTE ByteSize = 8;
DWORD fParity = 1;
BYTE Parity = 'N';
BYTE StopBits = 1;
//if (cComm.ConfigureComm(BaudRate, ByteSize, fParity, Parity, StopBits))
if (cComm.ConfigureComm(BaudRate, ByteSize, Parity, StopBits))
{
cComm.CleanComm();
DWORD dwError = 0;
COMSTAT comstat; /** COMSTAT结构体,记录通信设备的状态信息 */
memset(&comstat, 0, sizeof(COMSTAT));/** 将定义的comstat清空*/
UINT BytesInQue = 0; /*定义一个获取实际缓冲区拥有的字节数量*/
BYTE byByteGet; /*定义一个接收读取数据的变量*/
while (1)
{
if (ClearCommError(cComm.hComm, &dwError, &comstat))/*获取实际缓冲区当中的字节数量*/
{
BytesInQue = comstat.cbInQue;
if (!BytesInQue)/*没有的话等待4ms秒再读*/
{
Sleep(8);
continue;
}
do
{
cComm.ReadByte(byByteGet);/*将字节读取到byByterGet当中*/
cout << byByteGet;
} while (--BytesInQue);
//cout << "\t\t"<<endl;
//cComm.CleanComm();
}
//Sleep(1000);
}
cout << "dog1" << endl;
}
cout << "dog2" << endl;
//signed char data[] = { 'a','b','c','d','e','f','g','h' };
//unsigned char data[]byByte = { 0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07 };//定义要写入的数据
}
cout << "dog3" << endl;
}
}
类还是之前的类 主程序'改变了