我用SPComm控件进行串口程序设计,要一次接收700多个字节的十六进制数据,奇怪的是用我的程序接收后,总少了一些字节(原数据流中的$11,或$11、$13),然后我再用串口调试助手(应该比较完善的软件)接收,结果是一样的。但当我重启计算机后,再用串口调试助手接收,则没有错误,请各位高人指点一下。
部分程序如下:
var
rbuf:array[1..713] of byte;
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;begin
//viewstring:='';
move(Buffer^,pchar(@rbuf)^,bufferlength); //把缓冲区中数据移到接收字节数组中 for i:=1 to bufferlength do edit1.Text:=edit1.Text+inttohex(rbuf[i],2) ;
end;
部分程序如下:
var
rbuf:array[1..713] of byte;
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer;
BufferLength: Word);
var
i:integer;begin
//viewstring:='';
move(Buffer^,pchar(@rbuf)^,bufferlength); //把缓冲区中数据移到接收字节数组中 for i:=1 to bufferlength do edit1.Text:=edit1.Text+inttohex(rbuf[i],2) ;
end;
解决方案 »
- 如何获取PageControl动态生成的TAB标签宽度?
- 关于进制转换
- 推荐一个Delphi 2007 贡献者的论坛
- 使用printers打印单元碰到的问题,请帮忙,谢谢
- 求职
- 请问如何动态设置(就是在程序运行时设置)DBchart的属性,如datasource,以及datesource中的label、bar属性,谢谢!
- TSQLQuery查询集中有DATETIME类型字段时不能用TDataSetProvider提取数据集?
- 散分了,祝大家春节愉快!另问一个小问题:Form1运行时为最大化(Max),双击Form1的标题栏窗体为标准化(normal),但却不是我当初定义的norm
- 请教一个外挂的exe程序退出的问题?
- 急,为什么dbedit不能操作query的结果集??dbedit只能操作table吗????(牛虻)
- 100分请熟悉delphi的朋友解决一个问题。谢谢。
- Delphi2005运行时报错的问题
comm1.Outx_XonXoffFlow:=false;
comm1.TxContinueOnXoff:=false;
comm1.StartComm ;