Unit Serial und ESP8266

wennerer
Beiträge: 622
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Unit Serial und ESP8266

Beitrag von wennerer »

Hallo,
ja in Linux. Ich habe eben hier viewtopic.php?f=65&t=17187 meine Vorgehensweise hochgeladen. Ich denke in einem eigenen Beitrag wird es besser gefunden.

Viele Grüße
Bernd

wennerer
Beiträge: 622
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Unit Serial und ESP8266

Beitrag von wennerer »

Hallo,
ich kämpfe noch immer mit der Verbindung zum ESP. Mit meinem Programm kann ich nur Daten empfangen wenn ich vorher mit CuteCom auf den ESP8266 zugegriffen habe. Also Esp anstecken, mein Programm öffnen, keine Fehlermeldung aber auch keine Ausgabe von "Mein erstes writeln". Einmal kurz mit CuteCom verbunden. Dann wieder mit meinem Programm, alles läuft wie es soll. Ich denke mir fehlt da am Anfang noch irgend etwas um alles anzustossen. Kann mir da jemand weiter helfen?

Hier nochmal der Code:

Code: Alles auswählen

program SynaserTest;

{$mode objfpc}{$H+}

uses
  Classes,SysUtils,Synaser,Crt;

 procedure ReadMyESP8266;
  var
    ser: TBlockSerial;
    Value: string;
  begin
    ser:=TBlockSerial.Create;
    try
      ser.Connect('/dev/ttyUSB0');
      Sleep(1000);
      ser.config(74880,8, 'N', SB1, False, False);
      Write('Device: ' + ser.Device + '   Status: ' + ser.LastErrorDesc +' '+
      Inttostr(ser.LastError));
      Sleep(1000);
      repeat
        Value := ser.RecvString(1000);
        if Value <> '' then
         writeln(Value);
      until keypressed;
    finally
      Writeln('Serial Port will be freed...');
      ser.free;
      Writeln('Serial Port was freed successfully!');
    end;
  end;

  begin
   ReadMyESP8266;
  end.
Viele Grüße
Bernd

schoschy
Beiträge: 57
Registriert: Di 18. Okt 2022, 15:46

Re: Unit Serial und ESP8266

Beitrag von schoschy »

ich hab mal eben bei mir über eine unit geschaut:

Code: Alles auswählen

    ....
    SoftFlow := False;
    HardFlow := False;

    ComPort1.Config(BaudRate, DataSize, Parity, Stopbits, SoftFlow, HardFlow);
    Sleep(200);

    (* Datenempfang starten *)
    ComPort1.RTS := True;
    ComPort1.DTR := True;
    Timer1.Enabled := True;    
mir fällt noch LinuxLock ein, ist per default auf true, sollte aber nicht das problem sein.

wennerer
Beiträge: 622
Registriert: Di 19. Mai 2015, 20:05
OS, Lazarus, FPC: Linux Mint 20 Cinnamon,Lazarus 2.2.6 (rev lazarus_2_2_6) FPC 3.2.2 x86_64-linux-
CPU-Target: x86_64-linux-gtk2

Re: Unit Serial und ESP8266

Beitrag von wennerer »

Hallo Schoschy,
danke für deine Antwort. Hat leider auch nicht geholfen. Aber ich hab mich dann an af0815 erinnert der mich vor der Baudrate gewarnt hat. Ich hab jetzt ein Programm mit 9600 Baud (mit der Arduino IDE) drauf gespielt und siehe da es klappt alles ohne Probleme.
Dazu hätte ich dann noch eine Frage. In den Beispielen von ccrause wird die Baudrate so festgelegt:

Code: Alles auswählen

uart_cfg.baud_rate  := (115200*40) div 26;
Wenn ich das Ausrechne kommt bei mir 177230 heraus. Damit ich in CuteCom was Empfange muss ich 74880 Baud einstellen. Warum? Und wie stelle ich da 9600 ein?

Viele Grüße
Bernd

Antworten