Readintervaltimeout这个参数(记得还有2个参数,是直接针对Window API设置的),一般运用中,如果不是直接用API进行通信,而是用这些封装过的串口通信控件,可以不用理这些参数,用默认值就好了。
你接收数据方式是用spcomm的事件吧,在事件的代码里先加个延迟,sleep(100)到sleep(400),时间自己调整下,就能接收到完整数据了。
更好点方法是在判断要接收的数据长度,类似这样:
while WantNum < InputNum do
begin
if (超时)/(超次数)then
Exit;
Sleep(10);
end;
Read();
WantNum要接收的字节数,InputNum是缓冲区中字节数,这个参数是API函数Read()中的inBytes的参数。Spcomm的OnRecieveData()中应当有带这个参数(CPort控件是有这个参数的)