采用MSCOMM32控件串口通讯,接受缓冲区SetInBufferSize设为1024。
在OnComm事件发生时,接收缓冲区内有字符,那么程序中接受缓冲区rxdata应设为多大?
代码如下:    VARIANT variant_inp;
    COleSafeArray safearray_inp;
    LONG len,k;
    BYTE rxdata[1024];//目前设为1024
    int iIndexSt = 0;
    int iIndexEnd = 0;
    int iCount = 0;    memset(rxdata, 0, 1024);    if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
    {             ////////以下你可以根据自己的通信协议加入处理代码
        variant_inp=m_ctrlComm.GetInput(); //读缓冲区
        safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
        len=safearray_inp.GetOneDimSize(); //得到有效数据长度
        for(k=0;k<len;k++)
            safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组 for(k=0;k<len;k++)
{
                     BYTE bt=*(rxdata+k); //字符型
                     m_bArrRevAll.Add(bt);
                   }
    }