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

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”。请大家给点说法,谢谢!
...全文
62 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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);

1,594

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧