串口通讯问题!!!!(50分)

  • 主题发起人 主题发起人 terminal_guo
  • 开始时间 开始时间
T

terminal_guo

Unregistered / Unconfirmed
GUEST, unregistred user!
for i:=1 to 8 do
begin
if not fmain.Comm1.WriteCommData(@sbuf,1) then
begin
fmain.Comm1.StopComm;
fmain.Comm1.StartComm;
exit;
end;
sleep(2);
end;
我用以上的代码发送串口数据,怎么有时候感觉发不出去呢,大多数时候是好的,真的很奇怪,是不是要在每次发送或者接受的时候清空串口的发送缓冲区啊,不知道怎么弄,望有经验的老大给指点指点,谢谢了!
 
硬件没问题吧?
 
你用的是SPCOMM吧,不要用SLEPP这样的函数,首先看你的SPCOMM的属性设置情况。没问题的话最好用一个TIME控置发送接收,发出去的命令没收到返的结果时不允许再点击,否则的话会出现你所说的点击没反映的现象。M同时也应该查看你硬件的设置,但一般不用专门设置,除非你的机子很特别。
 
我的硬件肯定没有问题,这个我有信心,主要是有时候就突然收不到数据了,对了,我用的是spcomm,我是一秒钟发送一次阿,发送完了那边只要接收到数据了就会返回一个数据,然后我在Comm1ReceiveData这个事件里面进行接收数据处理,
有没有什么特别的设置啊,比如在发送之前清空发送缓冲区什么的
 
如果真是这样的话,那还是你的SPCOMM设置的问题,一秒发送一次足够单片机反应了。
如果有需要,可以将我的设置告诉你。用了很久,没发现有问题。
 
逆水,谢谢你啊,你把你的设置给我看看呢,
如果有发送和接受的代码片断也给我看看吧,谢谢!!
 
程序没有问题,关闭串口的缓冲区试一下,关闭的功能在我的电脑,串口,关闭缓冲。
 
接受答案了.
 
后退
顶部