L
lmy1210
Unregistered / Unconfirmed
GUEST, unregistred user!
我用delphi写一个读串口数据的程序,其中串口要求如下:
串口帧格式:7个数据位,1个奇校验位,2个停止位
波特率:9600
工作方式:0MODEM
正确的结果应该是每秒收到100多次的72H。可是我得到的结果却是每几秒钟收
到一个错误的十六进制数据。请高手们帮我看看我的程序是否写错了,在下
感激不尽,谢谢!
我用了一个串口的COM控件,并用如下程序:
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);
var
com1receive:integer;
begin
move(buffer,com1receive,17);
edit1.text:=edit1.text+inttostr(com1receive);//测试接收到的数据是否正确。
end;
后来一位沈前卫兄给我提供了以下程序段,可我试后没有收到任何数据。
请各位高手继续帮忙。谢谢!
var RecBuf:array [0..255] of char;
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);
begin
fillchar(RecBuf,256,#0);
move(buffer,RecBuf,BufferLength);
edit1.text:=edit1.text+RecBuf;
end;
串口帧格式:7个数据位,1个奇校验位,2个停止位
波特率:9600
工作方式:0MODEM
正确的结果应该是每秒收到100多次的72H。可是我得到的结果却是每几秒钟收
到一个错误的十六进制数据。请高手们帮我看看我的程序是否写错了,在下
感激不尽,谢谢!
我用了一个串口的COM控件,并用如下程序:
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);
var
com1receive:integer;
begin
move(buffer,com1receive,17);
edit1.text:=edit1.text+inttostr(com1receive);//测试接收到的数据是否正确。
end;
后来一位沈前卫兄给我提供了以下程序段,可我试后没有收到任何数据。
请各位高手继续帮忙。谢谢!
var RecBuf:array [0..255] of char;
procedure TForm1.Comm1ReceiveData(Sender: TObject; Buffer: Pointer; BufferLength: Word);
begin
fillchar(RecBuf,256,#0);
move(buffer,RecBuf,BufferLength);
edit1.text:=edit1.text+RecBuf;
end;