如何读取BIN文件发送到串口?(30分)

  • 主题发起人 主题发起人 sxwy
  • 开始时间 开始时间
S

sxwy

Unregistered / Unconfirmed
GUEST, unregistred user!
现在公司要做一个程序,将BIN(或者HEX)文件读取后,发往串口的单片机接收.请问在DELPHI里怎么将二进制文件或者HEX文件读取呢?
 
你学习memo1:TMemoryStream;的TMemoryStream类型吧,它可以读到硬盘数据到内存,再从内存读出i:=memo1.Read(buff,1024);后发送
 
用 TFileSteam 对象打开文件,读取缓冲区,送串行口!就这么简单。
注意问题:如果文件较大,应考虑分批传送,并由接收方返回已接收到的包的校验字节。这需要双方产生一个通讯协议。
 
//装入文件
procedure TForm1.BitBtn3Click(Sender: TObject);
var hzkstrr:string;
hzkstream:TFileStream;
begin
if not(OpenDialog1.Execute) then exit;
hzkStream.Free;
hzkStream := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);
SetLength(hzkstr,256);//设置读取缓冲区大小
hzkstream.Position:=0;//读取起始位置
txlen:=hzkStream.Read(hzkstr[1],256);//数据读到HZKSTR中,TXLEN=实际读取长度
Comm1.WriteCommData(PAnsiChar(hzkstr),txlen);
hzkStream.Free;
end;
 
多人接受答案了。
 
后退
顶部