我用  
 while( file1.ReadString( szLine ) )
{
 m_strSend+= szLine;
  m_strSend+="\r\n" ;
  GetDlgItem(IDC_send)->SetWindowText(m_strSend);
m_ctrlComm.SetOutput(COleVariant(m_strSend));//发送数据
}//一行一行的发文件内容用下面函数处理数据,结果,每次将一行的内容8个8个的显示  求修改,或指点
void CPc_pcDlg::OnOnCommMscomm1() 
{
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组
CString strtemp; 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++)             //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k);    //字符型
            strtemp.Format("%c",bt);    //将字符送入临时变量strtem
m_strReceive+=strtemp;  //加入接收编辑框对应字符串
     
        }
        m_strReceive+="\r\n" ;
GetDlgItem(IDC_receive)->SetWindowText(m_strReceive);
  
        

}
}

解决方案 »

  1.   

    这个就跟饭要一口一口地吃是一个道理。
    串口,收发数据都是串行方式,每次都是1bit。楼主好好体会。
      

  2.   

    串口初始化:
    view1->m_Comm1.put_CommPort(1); //串口1
    view1->m_Comm1.put_InBufferSize(4096); //设置输入缓冲区的大小,Bytes   
    view1->m_Comm1.put_OutBufferSize(2048); //设置输入缓冲区的大小,Bytes   
    if(!view1->m_Comm1.get_PortOpen()) //打开串口
    {
    view1->m_Comm1.put_PortOpen(true);   
    }
    view1->m_Comm1.put_OutBufferCount(0);// '清空发送缓冲区
    view1->m_Comm1.put_InBufferCount(0);// '滑空接收缓冲区view1->m_Comm1.put_InputMode(1); //设置输入方式为二进制方式   
    view1->m_Comm1.put_Settings(str); //设置波特率等参数   
    view1->m_Comm1.put_RThreshold(8); //为8表示有8个字符即引发事件   
    view1->m_Comm1.put_InputLen(0);
    你每次发送前,先根据要发送的数据长度设一下响应字符数:
    m_Comm1.put_RThreshold(8); //为8表示有8个字符即引发事件
    就是在这里加:
    while( file1.ReadString( szLine ) )
    {
     m_strSend+= szLine;
      m_strSend+="\r\n" ;
      GetDlgItem(IDC_send)->SetWindowText(m_strSend);m_Comm1.put_RThreshold(m_strSend.GetLength()); //为8表示有8个字符即引发事件m_ctrlComm.SetOutput(COleVariant(m_strSend));//发送数据
    }//一行一行的
      

  3.   

    流式的,没有包边界,跟tcp一样,需要自己添加协议,才能解出正确的包。