小弟近日用VC调用MS Communications control 控件来做串口通信,用它发送数据sscom能
正常接收,而用sscom发送数据则接收不到数据【不能得到2号MSCOmm事件】,不知道为什
么。
串口设置部分代码如下:
    m_ComPort.SetDTREnable(false);
    m_ComPort.SetEOFEnable(false);
    m_ComPort.SetHandshaking(false);
    m_ComPort.SetNullDiscard(false);

    m_ComPort.SetInputLen(1);
    m_ComPort.SetSThreshold(1);        //为1表示有一个字符引
    m_ComPort.SetRThreshold(1);
    m_ComPort.SetInputMode(1);            //设置输入方式为十六进制方式
    LPCTSTR para = "9600, n, 8, 1";
    m_ComPort.SetSettings(para);//(COM_BAUD, n, COM_DATA_BIT, COM_STOP_BIT);

消息响应部分如下:
void CTestCOMDlg::OnCommMscomm()
{
    VARIANT vResponse;
    int count;
    if(m_ComPort.GetCommEvent() == 2){            //接收事件
        count = m_ComPort.GetInBufferCount();    //接收到的字符数
        if(count > 0){
            vResponse = m_ComPort.GetInput();    //读数据
        //    SaveData(count, (unsigned char*)vResponse.parray->pvData);
            CEdit* dataSend = ((CEdit *)GetDlgItem(IDC_DATA_SEND));
            dataSend->SetSel(-1, 0);
            CString* dataReceive = (CString*)(vResponse.parray->pvData);
            dataSend->ReplaceSel(dataReceive->GetBuffer(-1));//((CString)dataR
eceive->GetLength());
        }
    }

}

兄弟姐妹们帮忙看看是怎么回事儿【硬件没有问题】。谢谢。