如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
1、建立界面如图:2、写程序,如下:unitUnit1;interfaceusesWindows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls,SPComm;typeTForm1=class(TForm)Memo1:TMemo;Memo2:TMemo;Label1:TLabel;Label2:TLabel;Button1:TButton;Button2:TButton;Comm1:TComm;CheckBox1:TCheckBox;Comm2:TComm;procedureButton2Click(Sender:TObject);procedureButton1Click(Sender:TObject);procedureFormCreate(Sender:TObject);procedureSendHex(S:String);procedureComm2ReceiveData(Sender:TObject;Buffer:PAnsiChar;BufferLength:Word);procedureFormClose(Sender:TObject;varAction:TCloseAction);private{Privatedeclarations}public{Publicdeclarations}end;varForm1:TForm1;implementation{$R*.dfm}procedureTForm1.Button2Click(Sender:TObject);beginclose;end;procedureTForm1.SendHex(S:String);vars2:string;buf1:array[0..50000]ofchar;i:integer;begins2:='';fori:=1tolength(s)dobeginif((copy(s,i,1)>='0')and(copy(s,i,1)<='9'))or((copy(s,i,1)>='a')and(copy(s,i,1)<='f'))or((copy(s,i,1)>='A')and(copy(s,i,1)<='F'))thenbegins2:=s2+copy(s,i,1);end;end;fori:=0to(length(s2)div2-1)dobuf1[i]:=char(strtoint('$'+copy(s2,i*2+1,2)));Comm1.WriteCommData(buf1,(length(s2)div2));end;//发送数据procedureTForm1.Button1Click(Sender:TObject);varp:pchar;x:integer;beginifCheckbox1.CheckedthenSendHex(Memo1.Lines.Text)//发送十六进制elsebeginx:=Length(Memo1.Lines.Text);//发送字符p:=Pchar(Memo1.Lines.Text);ifComm1.WriteCommData(p,x)then//spcomm发送数据的函数showmessage('faok');end;end;//接受数据procedureTForm1.Comm2ReceiveData(Sender:TObject;Buffer:PAnsiChar;BufferLength:Word);vartmpArray:array[0..4096]ofByte;ArraySize,i:DWORD;Count:DWORD;tmpStr:string;pStr:PChar;begin//如果“十六进制/字符”被选中ifCheckbox1.CheckedthenbeginpStr:=Buffer;tmpStr:=string(pStr);Dec(PStr);fori:=0toLength(tmpStr)-1dobegininc(pStr);tmpArray[i]:=Byte(pStr^);Memo2.Lines.Add(IntToHEX(Ord(tmpArray[i]),2));end;exit;end;pStr:=Buffer;memo2.Lines.Add(pStr);end;//打开串口procedureTForm1.FormCreate(Sender:TObject);beginComm1.StartComm;comm2.StartComm;end;//关闭串口procedureTForm1.FormClose(Sender:TObject