我现在在写一个(Win32 和WinCe之间)串口通信的程序,就是在Win32的PC端发数据到PND(WinCe)端,并且两端匀可发送、接收。
  现在的问题是:在Win32端发送,然后自己再接收,是没问题的;但是在WinCE端,接收数据却不同,比如:第一次我在Win32端发送“123”,而WinCe端接收到的是“1”,第二次再发送“456”,Wince接收到的是“234”,依此类推。次数  Win32端发送   WinCE端接收
1     123           1
2     456           234
3     ABC           56A
4     WXYZ          BCW
5     IUY           XYZI
。。但在Win32端接收是正常的,请问这是什么原因啊?!在线等到。。先谢过

解决方案 »

  1.   

    接收的时候,应该接收多次,直到Recv出错才结束(没有接收到数据)
      

  2.   

    我的接收是用线程接收的,while(true){里面通过WaitCommEvent()来检测是否有数据可读,没有就阻塞;}在Win32端接收、发送都是正常的
      

  3.   

    那你每次WaitCommEvent()检测到有数据可读接收多次,直到Recv出错才结束(没有接收到数据),试试或者自己接收到多次数据后断包
      

  4.   

    接收多次,它会在WaitCommEvent这里阻塞,不会再继续往下走
      

  5.   

    // WinCE貌似不支持非阻塞模式,只能用阻塞模式。
      

  6.   

    wince没玩过啊
    但是我一般使用其他单片机时,当单片机处于接受状态时,我会在PC端发送时在数据尾部设置一个标志位,方便单片机检测。
    单片机一直接收数据值到检测到标志位为止
    我一直是这么办的,不知道对楼主有么有帮助  呵呵
      

  7.   

    wince的接收速度慢
    用线程处理之