本人目前使用Delphi的SPCOMM控件对串口进行读写。
有两点体会或问题。
1-在运用过程中,发现该控件没有对串口读写的超时进行控制。(或本人愚笨没发现)
故本人是用时间控件对串口的读写超时进行控制。2-在串口操作中,数据会丢包,但也不是经常,故本人用延时进行控制,问题基本解决。不知道我遇到的问题与解决方法是否正确、合理?
想听听在大家伙对串口编程的经验和体会。
如有兴趣可加我QQ76135178进行详谈,或发邮件[email protected]
有两点体会或问题。
1-在运用过程中,发现该控件没有对串口读写的超时进行控制。(或本人愚笨没发现)
故本人是用时间控件对串口的读写超时进行控制。2-在串口操作中,数据会丢包,但也不是经常,故本人用延时进行控制,问题基本解决。不知道我遇到的问题与解决方法是否正确、合理?
想听听在大家伙对串口编程的经验和体会。
如有兴趣可加我QQ76135178进行详谈,或发邮件[email protected]
解决方案 »
- 类似Grid,最新添加条目在最上边?
- 為什么FastReport會出現斷線現象?
- 求函数FileTimeToLocalFileTime的详解??
- 现在准备装个delphi编译器,请用 D6,D7,D8哪个好
- 自己制作的屏保无法在显示属性中进行设置
- 程序删除与修改有问题,我是菜鸟,请delphi 达人帮忙,急!!!在线等,跪求!!!
- 如何将access和excel中的数据导入到delphi中,在delphi中能直观的看到里面的数据在线等待
- 有什么办法能把文本文件中的一个空行给删除
- 我如何知道着个消息?
- 我想做一个和delphi一样的属性设置窗体,请高手指教如何来做!
- 如何用程序模拟鼠标点击?
- 如何将Excel中的数据正确统计到mysql里面??各位delphi高手帮个忙!
SPCOMM本身并不提供超时机制;但在通讯过程中,获取数据并触发接收事件是有一个扫描时间的.这个属性是ReadIntervalTimeOut等相关的属性;
2.丢失数据包:
不知道你是指的发送或接收都存在的数据包丢失的现象是不是指数据包的某个字节数据丢失了,造成你数据包的丢失?如果是这样的话,你就要检查下软件握手字节对通讯的影响.
你就要检查下SPCOMM的Inx_XonXoffFlow,Outx_XonXoffFlow这两个属性的设置;
Inx_XonXoffFlow,Outx_XonXoffFlow为真表示进行软件握手,握手字节分别是:#19;#17;通讯中如果有这两个字节,软件会当成握手而丢失这两个字节的数据的.