:MSComm串口通信数据接收不全有关问题

紧急求助:MSComm串口通信数据接收不全问题?
我用MSComm控件做串口接收和发送,接收少量数据时没有问题,当接收长于9个字节的数据时,串口接收数据不全,我估计是当第一个字节到达串口并触发oncomm事件时,后面的字节还没有能够全部到达串口并被存入缓冲区,但是不知道应该怎么解决,请各位大侠帮忙,非常感谢!  

------解决方案--------------------
如果是定长数据,你就在初始化函数里设定长度到时再响应接收函数,如果不是,就采取来一个数据存一个,然后动态分析数据是否收全。一般通信都是采到动态分析数据,因为现在是多任务操作系统,不能直接控制硬件
------解决方案--------------------
动态分析就是:把收到的数据放一个缓冲区里,每次收到一个数据或多个数据(就是执行一次接收函数)结束后,就发个自定义命令调用分析函数,分析函数就是根据报文的格式来判断一帧是否完整,如果完整就可以拆分数据,如果不完整就退出分析函数。
------解决方案--------------------
oncomm事件是个做的很不好的机制,其最大的问题是无法报告接收数据结束;据我所知的使用,几乎100%是 发送-接收 模式,因此一般你可以 发送数据后 sleep 一小段时间,读数据

output data
sleep(100)
read input