我使用spcomm做了一个串口通讯测试,数据发送端发送出去的数据超级终端能够接到,但是,控件的接收数据函数没什么反应?
那位高手碰到类似情况,请指点
那位高手碰到类似情况,请指点
解决方案 »
- 请教,WEBBrowser控件,找指定文字后面的文字......................................
- 200分,谁来帮我看看我Hook窗口创建的代码有什么错误?能Hook成功,只是会导致资源管理器错误
- ********有关TCP端口侦听的问题********
- 用什么东东写帮助文档??各位高手请指教!!
- 硬件高手向这看了。关于麦克风、声卡、网卡的问题。
- 如何读取SCSI硬盘的SerialNumber
- 怎样把 adoquery 检索出的 记录删除
- 一个仓库管理系统的困扰!!!!!!!???????
- 如何使用函数getusername
- 怎么装C++ Builder5.5呢
- 如何禁止访问局域网,但SQL能访问?
- 关于modem来电显示的问题
------------------
他的工作原理是!只要缓冲区有数据!他就会去读缓冲区数据。
1 有消息触发
2 缓冲区满触发
3 数据益处触发第一你要合理的设置 自己的缓冲区的大小
第二你要选择适合你的串口触发过程 比如实时的程序和数据大量发送的数据通信类的程序的设置就不一样
然后就是接收缓冲区
你把它设置成非阻塞模式就可以了,自己代码处理接收到的数据即可。
procedure Tfrm_icread.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);var tmpArray:array[0..256] of Byte;
ArraySize: DWORD;
Count:DWORD;
tmpStr:string;
i:integer;
pStr:PChar;
begin //-------------接受返回串口返回数据-----------
pStr:=Buffer;
tmpStr:=string(pStr);
Dec(PStr);
tempb:='';
for i:=0 to bufferlength-1 do
begin
inc(PStr);
tmpArray[i]:=Byte(PSTR^);
tempb:=tempb+IntToHEX(Ord(tmpArray[i]),2); end;