//定义发送单个字符的空间大小
char *buffA = new char[1];
char *buffB = new char[1];
char *buffC = new char[1];
char *buffD = new char[1];
    //分配每次发送的空间
memset(buffA,0,sizeof(char)*1);
memset(buffB,0,sizeof(char)*1);
memset(buffC,0,sizeof(char)*1);
memset(buffD,0,sizeof(char)*1);
//设置发送字符
buffA[0]= 'P';
buffB[0]= 'O';
buffC[0]= 'N';
buffD[0]= 13;
//清空串口读写缓存;
//  m_SerialPort.ClearReadBuffer();
//  m_SerialPort.ClearWriteBuffer();

//向串口发送数据

m_SerialPort.Write(buffA,sizeof(char)*1);
SetTimeOut();
m_SerialPort.Write(buffB,sizeof(char)*1);
SetTimeOut();
m_SerialPort.Write(buffC,sizeof(char)*1);
SetTimeOut();
m_SerialPort.Write(buffD,sizeof(char)*1);
SetTimeOut();
//数据发送完成,释放分配空间

delete[] buffA;
delete[] buffB;
delete[] buffC;
delete[] buffD;
//设置延迟,等待下位机向串口发送数据
SetTimeOut();
//开始读取串口数据

         char *Readbuff = new char [50];
memset(Readbuff,0,sizeof(char)*50);
m_SerialPort.Read(Readbuff,50);

    //读取完成,显示在文本框中

GetDlgItem(IDC_BACKMESSAGE)->SetWindowText(Readbuff);

//清理串口中的读缓存
m_SerialPort.ClearReadBuffer();
m_SerialPort.ClearWriteBuffer();

//释放读取缓存空间
delete[] Readbuff;
串口读消息,但是程序读不到,而且读时程序繁忙,需要强行关闭。