我用spcomm控件和下位机通信,8位,停止位1,无校验,泼特1200。单片机相同设置。把要发送的数据(byte型)放到一个32大小的临时数组里,循环发送这个数组,每发送一个字节,延时1个毫秒,发送完成一次,更新一下数组,再发送,中间是连续的。可是发现单片机只能接收并显示600多个字节,太多就跳不出中断,死掉了,请问是怎么会事。波特率从1200-9600都试了,都不行。部分源程序如下:for a:=1 to 128 do //循环发送128个32大小的数组
begin
for i:=1 to 32 do
begin
comm1.WriteCommData(@newarray[i],1); //send
sleep(1); //延时
end;
updatearray(); //此处更新一下数组
end;还请通讯高手指点迷津。谢谢。
begin
for i:=1 to 32 do
begin
comm1.WriteCommData(@newarray[i],1); //send
sleep(1); //延时
end;
updatearray(); //此处更新一下数组
end;还请通讯高手指点迷津。谢谢。
可以返回一个发送是否成功的表示
comm1.WriteCommData(newarray,sizeof(newarray));
即可 。
在缓冲区为空的事件里,编写剩下代码。
程序调试通过后,给我发Email。 [email protected]
comm1.WriteCommData(newarray,sizeof(newarray));
而具体发送时,spcomm自己会自动调用多线程来处理的。