spcomm控件为什么不能发送和接收十六进制数11?
解决方案 »
- DevCo has got the Delphi Product Manager -- Nick Hodges
- 鼠标由箭头变成手形,或者变成I形的时候有什么方法可以监测到吗?
- 请问,有这么一个控件嘛或是怎么可以实现类似的功能
- 好难的排列组合算法呀,请各位大侠多多帮忙
- 如何取TADOConnection::Execute操作的影响记录数。
- 为何fastreport打印的数据都是两页的? 哪里有注册的fastreport下载?
- case 语句
- 各位可否提供spcomm 的中文技术资料
- 怎样把空格赋给一个空的字符串
- 陈盈豪是谁??
- spcomm控件为什么不能发送和接收十六进制数11?
- 如何模拟串口发送数据
var
vbyte: Byte;vByte := $11;
TComm.writeCommData(@vByte,1);
这样就发出去了;
如果你接受数据的话会触发一个事件,该事件的参数有buffer和bufferlength,如果你发送的数据太快的话,BufferLength会大于1,但是BufferLength一般小于2048,如果发的太快了的话,Windows会响应不了。如果你只发一个数据$11过来,接收到BufferLength为1,
则pByte(buffer)^为$11.
Comm1.stop;
Comm1.Outx_XonXoffFlow := False;
Comm1.Inx_XonXoffFlow := False;
Comm1.StartComm;
试一下行不行。这个我以前没遇到过。
推荐用PORTCOM控件,或用API
spcomm:比较好的vcl,算是比较专业的,解剖了一下,功能比较完善。
TurboPower:公认的专业通讯控件。可以到其站点下载,开放源码了。
我在制作串口通讯软件时三种都用过,最终全部使用TurboPower!所以也推荐大家使用它。
写了个例子,基本的串口通讯都可以实现,可提供参考。
下载地址:http://www.kaer.cn/default.aspx(网站安全性较差,经常当机,如果急用,mail我)
多多指正:[email protected]