是一个PDA应用项目,程序我都完成了,但现在出现一个问题!我要从PC下载数据到PDA,如果我先启动PC发送数据,PDA稍等一下再接收数据,我要发送的数据没有100K,按道理等PC发送完了,我再接收数据都应该可以啊,但实际不行,有一些数据掉了,相当于缓冲区太小,把前面的数据冲掉了。我现在想搞明白的是SetupComm函数中,输入输出缓冲区最大可为多大?环境:pda:hp的机子,2002的操作系统。PDA端程序用vs2003编写,串口操作用的是evc3.0写的dll,createfile采用的是同步方式!pc:vs2003写的服务端程序!通讯全是我自定义的,里面有校验检查,如果发送太早,接收太晚,会出现校验通不过,也就是数据都丢失了。如果我发送的数据较少(只要不从PC下载数据的话,发送与接收的数据都比较少的)都一切正常!请各位高手多多指教啊,欢迎大家一起学习!

解决方案 »

  1.   

    偶感觉也与下位机的cpu有关系吧,不好说最大是多大
      

  2.   

    PDA应用项目不太懂,但我看问题应该出在这:同步方式
      

  3.   

    和机器有关的。
    可以用软件流Xon/Xoff或者硬件流方式(需要PDA支持)。
      

  4.   

    我一般都用的19.6K 速率。4096的缓冲区。
    你丢失数据可能是
    1。校验检查时,出错被你丢掉。
    2。你接到后被后来数据覆盖掉了。
    建议:1。先屏蔽掉校验检查,将所有数据显示
          2。将接到的数据分接收和处理2个buff
      

  5.   

    TO friends1979(liuxia) :怎么我的PDA只能以9600通讯呢,如果调大了,发的值就乱了。比如PDA发0xff,收到的就不确定了。
    正常情况下,PDA假如19600,PC也19600就行了,但事实上我测试就不对了!