注册 登录
编程论坛 VC++/MFC

虚拟串口vc++调试问题?

喜鹊王子 发布于 2013-01-15 16:01, 585 次点击
我的笔记本本身是没有COM口的,插上LM3S9B96嵌入式微控制器后,生成一个虚拟串口:
只有本站会员才能查看附件,请 登录

利用这个虚拟串口,我根据书上的例子编了一个调试程序,调试时,数据发送不出去,不知道什么原因:
BOOL CMSCommTestDlg::OnInitDialog()
{
  ....
  m_ctrlComm.SetCommPort(4);//选择COM4
  m_ctrlComm.SetInputMode(1);//输入方式为二进制方式
  m_ctrlComm.SetInBufferSize(1024);//设置串口接受缓冲区大小为1024字节
  m_ctrlComm.SetOutBufferSize(512);//设置串口发送缓冲区大小为512字节
  m_ctrlComm.SetSettings("9600,n,8,1");//波特率为9600,无校验,8位数据位,1位停止位
  m_ctrlComm.SetPortOpen(TRUE);//打开串口
  m_ctrlComm.SetRThreshold(1);
  m_ctrlComm.SetInputLen(0);//设置当前接收区数据长度为0
  m_ctrlComm.SetInBufferCount(0);
 
}
//..............................................
void CMSCommTestDlg::OnComm()
{
    // TODO: Add your control notification handler code here
    VARIANT variant;
    COleSafeArray safearray;
    LONG len,k;
    BYTE rxdata[2048],bt;//设置BYTE数组
    CString strtemp;
    if(m_ctrlComm.GetCommEvent()==2)
      {
        variant=m_ctrlComm.GetInput();
        safearray=variant;
        len=safearray.GetOneDimSize();
        for(k=0;k<len;k++)
        safearray.GetElement(&k,rxdata+k);
        for(k=0;k<len;k++)
     {      
       bt=*(char*)(rxdata+k);
           strtemp.Format("%c",bt);
           m_strEditRXData+=strtemp;   
      }
      }
      UpdateData(FALSE);
}
//..............................................
void CMSCommTestDlg::OnButtonManualSend()
{
    // TODO: Add your control notification handler code here
    UpdateData(TRUE);
    m_ctrlComm.SetOutput(COleVariant(m_strEditTXData));
}
//..................................................
只有本站会员才能查看附件,请 登录


[ 本帖最后由 喜鹊王子 于 2013-1-15 16:15 编辑 ]
1 回复
#2
喜鹊王子2013-01-15 17:23
后来莫名其妙的成功了,没有错误,哈哈。。。。多谢大家的阅读!!!
1