串口通讯(200分)(200分)

  • 主题发起人 主题发起人 goujie
  • 开始时间 开始时间
G

goujie

Unregistered / Unconfirmed
GUEST, unregistred user!
请问各位大侠,怎么准确判传串口缓冲区的数据已经发送出去(用api做),小弟试过
SetCommMask(Handle,EV_TXEMPTY);和
WaitCommEvent(Handle,dwSendOver,Nil);
但是不准确,(最后一个字节没有发送出去)。因为小弟做的是232转485的通讯,485的
通讯是半双工,发完数据就必须马上转为接收,如果转早了,最后的几个字节发送不出去,
如果晚了,回来的数就会丢失一部分。请各位给小弟指点迷津,谢谢

 
232转485可不可以用转换器,不过方便是方便,就是贵了点。[:D]
 
看不大懂。
RS232-RS485有专门的转换器,一般只和和通讯距离有关。。。有名的是摩莎。

我不知道你通讯速度要求是什么,一般要求可以等待它发送后再发。。。

推荐用spcomm控件。
 
用mscomm控件的OutBufferCount属性可以得到传输缓冲区中等待的字符数
 
用 MAP行的文件判断文件是否 EOF
 
如果总是少发一个字节,那么每次加多一个无用字节就可以解决问题了吧...
 
强烈建议用spcomm
 
学习学习!!
 
谢谢,谢谢各位我的问题通过其他途径解决了,时间这么长了,我先结贴。
 
后退
顶部