关于串口的一个奇怪问题,请大家看看:

caodayong 2004-01-04 04:47:53
我用spcomm控件进行串口通信的时候,执行到 move(buffer^,pchar(@rbuf)^,bufferlength);时候,总是出现“Exception EAccessVilation in module BTMS.exe at 00003D88.Access violation at address 00403d88 in module 'btms.exe'.Read of address 30313028”。请大家给点说法,谢谢!
...全文
32 点赞 收藏 5
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
caodayong 2004-01-14
procedure TMainWindowF.CommReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
ValueString:string;
ValueInteger:integer;
ValueFloat:double;
str: PChar;
begin
//初始化
ValueString:='';
//从缓冲区取数据
str := Buffer;
SetLength(ValueString, BufferLength);
for i:=1 to BufferLength do
ValueString[i] := (str+i-1)^;
ValueString:=ValueString[10]+ValueString[11]+ValueString[12]
+ValueString[13]+ValueString[14]+ValueString[15];
//进行解码
ValueInteger:=StrToInt('$'+ValueString[3])*4096+
StrToInt('$'+ValueString[4])*256+
StrToInt('$'+ValueString[5])*16+
StrToInt('$'+ValueString[6]);
//提交数据到显示区
MainWindowF.HeartMachine1.AddPoint(3,ValueInteger,ComMatchArray[1].ComX);
。。。
//存储数据到临时数据库

end;
回复
jobs2001 2004-01-09
解决了贴出来大家参考啊!
:)
回复
101monster 2004-01-05
呵呵,UP!
回复
caodayong 2004-01-05
自己解决了,风月兄说的不是很妥当,不过谢谢你的关注,分送你了!!
回复
zhouyf001 2004-01-04
move(buffer,pchar(@rbuf)^,bufferlength);
回复
相关推荐
发帖
网络通信/分布式开发
创建于2007-08-02

1573

社区成员

Delphi 网络通信/分布式开发
申请成为版主
帖子事件
创建了帖子
2004-01-04 04:47
社区公告
暂无公告