我在信息设置键下写的程序,过程这样,我先发个标志如数17通知下位机可以发送啦,然后上位机开始接收,为什么我在运行时要点击两次下位机的数据才送上来呢,按道理,我点击一次发送标志过去后,下位机执行程序发送数据过来就已经执行别的程序了,不可能在我第二次点击的时候发送数据上来的
      程序如下BYTE a=17;
UpdateData(TRUE);
    buf[0]=a;
   ::WriteCommBlock(m_comDev,buf,1);
CString strVal1,strVal2;
// int nLen;
if(::ReadCommBlock(m_comDev,inbuf,57))

{
//参数接收部分

      m_Id3=inbuf[0];   //工作段的读取
  m_Odometer1.m_nNumber=m_Id3;
  m_Odometer1.SendMessage (WM_RESET_COUNTERS, 0, 0);
  m_Odometer1.SendMessage (WM_ADVANCE_COUNTERS, 0, 0);
     if(m_Id3==1)
     { 
 for(int i=1;i<3;i++)    //第一段
 {
  un[0].b[i-1]=inbuf[i];
 }
     un[0].yg=un[0].b[0]*100+un[0].b[1];
     m_s11=un[0].yg;
     for(i=3;i<5;i++)      
 {
  un[1].b[i-3]=inbuf[i];
 }
     un[1].yg=un[1].b[0]*100+un[1].b[1];
     m_s12=un[1].yg;
     m_ss13=inbuf[5];
     m_sf13=inbuf[6];
     m_s14=inbuf[7];
     m_s15=inbuf[8];  UpdateShow();
 }
 if(m_Id3==2)
 {
 for(int i=1;i<3;i++)    //第一段
 {
  un[0].b[i-1]=inbuf[i];
 }
     un[0].yg=un[0].b[0]*100+un[0].b[1];
     m_s11=un[0].yg;
     for(i=3;i<5;i++)      
 {
  un[1].b[i-3]=inbuf[i];
 }
     un[1].yg=un[1].b[0]*100+un[1].b[1];
     m_s12=un[1].yg;
     m_ss13=inbuf[5];
     m_sf13=inbuf[6];
     m_s14=inbuf[7];
     m_s15=inbuf[8];
  
for(i=9;i<11;i++)   //第二段
{
  un[2].b[i-9]=inbuf[i];
}
un[2].yg=un[2].b[0]*100+un[2].b[1];
m_s21=un[2].yg;
for(i=11;i<13;i++)      
{
  un[3].b[i-11]=inbuf[i];
}
un[3].yg=un[3].b[0]*100+un[3].b[1];
m_s22=un[3].yg;
m_ss23=inbuf[13];
m_sf23=inbuf[14];
m_s24=inbuf[15];
m_s25=inbuf[16]; UpdateShow();
 }
 if(m_Id3==3)
 {
 for(int i=1;i<3;i++)    //第一段
 {
  un[0].b[i-1]=inbuf[i];
 }
     un[0].yg=un[0].b[0]*100+un[0].b[1];
     m_s11=un[0].yg;
     for(i=3;i<5;i++)      
 {
  un[1].b[i-3]=inbuf[i];
 }
     un[1].yg=un[1].b[0]*100+un[1].b[1];
     m_s12=un[1].yg;
     m_ss13=inbuf[5];
     m_sf13=inbuf[6];
     m_s14=inbuf[7];
     m_s15=inbuf[8];
  
for(i=9;i<11;i++)   //第二段
{
  un[2].b[i-9]=inbuf[i];
}
un[2].yg=un[2].b[0]*100+un[2].b[1];
m_s21=un[2].yg;
for(i=11;i<13;i++)      
{
  un[3].b[i-11]=inbuf[i];
}
un[3].yg=un[3].b[0]*100+un[3].b[1];
m_s22=un[3].yg;
m_ss23=inbuf[13];
m_sf23=inbuf[14];
m_s24=inbuf[15];
m_s25=inbuf[16]; for(i=17;i<19;i++)
{
  un[4].b[i-17]=inbuf[i];
}
un[4].yg=un[4].b[0]*100+un[4].b[1];
m_s31=un[4].yg;
for(i=19;i<21;i++)      
{
  un[5].b[i-19]=inbuf[i];
}
un[5].yg=un[5].b[0]*100+un[5].b[1];
m_s32=un[5].yg;
m_ss33=inbuf[21];
m_sf33=inbuf[22];
m_s34=inbuf[23];
m_s35=inbuf[24]; UpdateShow();
     }
 if(m_Id3==4)
 {
 for(int i=1;i<3;i++)    //第一段
 {
  un[0].b[i-1]=inbuf[i];
 }
     un[0].yg=un[0].b[0]*100+un[0].b[1];
     m_s11=un[0].yg;
     for(i=3;i<5;i++)      
 {
  un[1].b[i-3]=inbuf[i];
 }
     un[1].yg=un[1].b[0]*100+un[1].b[1];
     m_s12=un[1].yg;
     m_ss13=inbuf[5];
     m_sf13=inbuf[6];
     m_s14=inbuf[7];
     m_s15=inbuf[8];
  
for(i=9;i<11;i++)   //第二段
{
  un[2].b[i-9]=inbuf[i];
}
un[2].yg=un[2].b[0]*100+un[2].b[1];
m_s21=un[2].yg;
for(i=11;i<13;i++)      
{
  un[3].b[i-11]=inbuf[i];
}
un[3].yg=un[3].b[0]*100+un[3].b[1];
m_s22=un[3].yg;
m_ss23=inbuf[13];
m_sf23=inbuf[14];
m_s24=inbuf[15];
m_s25=inbuf[16]; for(i=17;i<19;i++)
{
  un[4].b[i-17]=inbuf[i];
}
un[4].yg=un[4].b[0]*100+un[4].b[1];
m_s31=un[4].yg;
for(i=19;i<21;i++)      
{
  un[5].b[i-19]=inbuf[i];
}
un[5].yg=un[5].b[0]*100+un[5].b[1];
m_s32=un[5].yg;
m_ss33=inbuf[21];
m_sf33=inbuf[22];
m_s34=inbuf[23];
m_s35=inbuf[24]; for(i=25;i<27;i++)
{
  un[6].b[i-25]=inbuf[i];
}
un[6].yg=un[6].b[0]*100+un[6].b[1];
m_s41=un[6].yg;
for(i=27;i<29;i++)      
{
  un[7].b[i-27]=inbuf[i];
}
un[7].yg=un[7].b[0]*100+un[7].b[1];
m_s42=un[7].yg;
m_ss43=inbuf[29];
m_sf43=inbuf[30];
m_s44=inbuf[31];
m_s45=inbuf[32]; UpdateShow();
     }  if(m_Id3==5)
 {
 for(int i=1;i<3;i++)    //第一段
 {
  un[0].b[i-1]=inbuf[i];
 }
     un[0].yg=un[0].b[0]*100+un[0].b[1];
     m_s11=un[0].yg;
     for(i=3;i<5;i++)      
 {
  un[1].b[i-3]=inbuf[i];
 }
     un[1].yg=un[1].b[0]*100+un[1].b[1];
     m_s12=un[1].yg;
     m_ss13=inbuf[5];
     m_sf13=inbuf[6];
     m_s14=inbuf[7];
     m_s15=inbuf[8];
  
for(i=9;i<11;i++)   //第二段
{
  un[2].b[i-9]=inbuf[i];
}
un[2].yg=un[2].b[0]*100+un[2].b[1];
m_s21=un[2].yg;
for(i=11;i<13;i++)      
{
  un[3].b[i-11]=inbuf[i];
}
un[3].yg=un[3].b[0]*100+un[3].b[1];
m_s22=un[3].yg;
m_ss23=inbuf[13];
m_sf23=inbuf[14];
m_s24=inbuf[15];
m_s25=inbuf[16]; for(i=17;i<19;i++)
{
  un[4].b[i-17]=inbuf[i];
}
un[4].yg=un[4].b[0]*100+un[4].b[1];
m_s31=un[4].yg;
for(i=19;i<21;i++)      
{
  un[5].b[i-19]=inbuf[i];
}
un[5].yg=un[5].b[0]*100+un[5].b[1];
m_s32=un[5].yg;
m_ss33=inbuf[21];
m_sf33=inbuf[22];
m_s34=inbuf[23];
m_s35=inbuf[24]; for(i=25;i<27;i++)
{
  un[6].b[i-25]=inbuf[i];
}
un[6].yg=un[6].b[0]*100+un[6].b[1];
m_s41=un[6].yg;
for(i=27;i<29;i++)      
{
  un[7].b[i-26]=inbuf[i];
}
un[7].yg=un[7].b[0]*100+un[7].b[1];
m_s42=un[7].yg;
m_ss43=inbuf[29];
m_sf43=inbuf[30];
m_s44=inbuf[31];
m_s45=inbuf[32]; for(i=33;i<35;i++)
{
  un[8].b[i-33]=inbuf[i];
}
un[8].yg=un[8].b[0]*100+un[8].b[1];
m_s51=un[8].yg;
for(i=35;i<37;i++)      
{
  un[9].b[i-35]=inbuf[i];
}
un[9].yg=un[9].b[0]*100+un[9].b[1];
m_s52=un[9].yg;
m_ss53=inbuf[37];
m_sf53=inbuf[38];
m_s54=inbuf[39];
m_s55=inbuf[40]; UpdateShow();
     }     if(m_Id3==6)
 {
 for(int i=1;i<3;i++)    //第一段
 {
  un[0].b[i-1]=inbuf[i];
 }
     un[0].yg=un[0].b[0]*100+un[0].b[1];
     m_s11=un[0].yg;
     for(i=3;i<5;i++)      
 {
  un[1].b[i-3]=inbuf[i];
 }
     un[1].yg=un[1].b[0]*100+un[1].b[1];
     m_s12=un[1].yg;
     m_ss13=inbuf[5];
     m_sf13=inbuf[6];
     m_s14=inbuf[7];
     m_s15=inbuf[8];
  
for(i=9;i<11;i++)   //第二段
{
  un[2].b[i-9]=inbuf[i];
}
un[2].yg=un[2].b[0]*100+un[2].b[1];
m_s21=un[2].yg;
for(i=11;i<13;i++)      
{
  un[3].b[i-11]=inbuf[i];
}
un[3].yg=un[3].b[0]*100+un[3].b[1];
m_s22=un[3].yg;
m_ss23=inbuf[13];
m_sf23=inbuf[14];
m_s24=inbuf[15];
m_s25=inbuf[16]; for(i=17;i<19;i++)
{
  un[4].b[i-17]=inbuf[i];
}
un[4].yg=un[4].b[0]*100+un[4].b[1];
m_s31=un[4].yg;
for(i=19;i<21;i++)      
{
  un[5].b[i-19]=inbuf[i];
}
un[5].yg=un[5].b[0]*100+un[5].b[1];
m_s32=un[5].yg;
m_ss33=inbuf[21];
m_sf33=inbuf[22];
m_s34=inbuf[23];
m_s35=inbuf[24]; for(i=25;i<27;i++)
{
  un[6].b[i-25]=inbuf[i];
}
un[6].yg=un[6].b[0]*100+un[6].b[1];
m_s41=un[6].yg;
for(i=27;i<29;i++)      
{
  un[7].b[i-27]=inbuf[i];
}
un[7].yg=un[7].b[0]*100+un[7].b[1];
m_s42=un[7].yg;
m_ss43=inbuf[29];
m_sf43=inbuf[30];
m_s44=inbuf[31];
m_s45=inbuf[32]; for(i=33;i<35;i++)
{
  un[8].b[i-33]=inbuf[i];
}
un[8].yg=un[8].b[0]*100+un[8].b[1];
m_s51=un[8].yg;
for(i=35;i<37;i++)      
{
  un[9].b[i-35]=inbuf[i];
}
un[9].yg=un[9].b[0]*100+un[9].b[1];
m_s52=un[9].yg;
m_ss53=inbuf[37];
m_sf53=inbuf[38];
m_s54=inbuf[39];
m_s55=inbuf[40]; for(i=41;i<43;i++)
{
  un[10].b[i-41]=inbuf[i];
}
un[10].yg=un[10].b[0]*100+un[10].b[1];
m_s61=un[10].yg;
for(i=43;i<45;i++)      
{
  un[11].b[i-43]=inbuf[i];
}
un[11].yg=un[11].b[0]*100+un[11].b[1];
m_s62=un[11].yg;
m_ss63=inbuf[45];
m_sf63=inbuf[46];
m_s64=inbuf[47];
m_s65=inbuf[48];
    UpdateShow();
     }
   UpdateData(FALSE);
  }