Hallo Leute,
bin Anfänger und betreibe Delphi progrmmieren als mein Hobby, deswegen bitte nicht lachen, wenn ich blöde Frage stelle.
ich will über Rs232 kommunikation mit einer externen Platine herstellen. Befehle schreiben funktioniert einwandfrei aber lesen klappt nur abundzu.
Kann mir jemand sagen was mach ich falsch?
Ich benutze Vista und turbo Delphi 6.
Danke im Voraus!
Port öffnen realisiere ich folgendermassen:
Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
begin
hComm:=createfile('COM4',GENERIC_READ or GENERIC_WRITE,0,
nil,OPEN_EXISTING, 0, 0);
b_fsuccess := GetcommState(hComm,dcb);
dcb.BaudRate := baudrate;
Dcb.ByteSize := byte_;
Dcb.Parity := Parity;
Dcb.StopBits := StopBits;
// dcb.flags :=$1011;
with DCB do begin
baudrate :=19200;
ByteSize :=8;
Parity :=0;
StopBits := 0;
Befehle schreiben mit:
procedure TForm2.Button2Click(Sender: TObject);
begin
Zeichen [0] := 112;
Zeichen [1] := 119;
Zeichen [2] := 013;
//Zeichen [3] := 10;
state:= writefile(Hcomm,Zeichen,3, writtenBytes ,nil);
if state then
begin
Ans1 := '';
for i := 0 to (writtenBytes - 1) do
begin
An1 := Char (zeichen[i]);
Ans1 := Ans1 + An1;
end;
edit2.Text := ans1;
end;
Daten empfangen:
procedure TForm2.Button3Click(Sender: TObject);
begin
GetMem(buffer,500);
MaxLen := Sizeof(buffer^);
success := readfile (Hcomm,buffer^,300,LEN,nil);
if success then
begin
Ans := '';
for i := 0 to (len - 1) do
begin
fra := Char(empfangen[i]);
ANs := ANs + fra;
edit1.Text := ans;
end;
end;