Ich habe dann scheinbar das Talent immer die Libs zu finden die nicht gehen oder die Funktionen von denen zu verwenden die nicht richtig gehen.
So was funktioniert aber zumindest auf dem STM32L475:
Platformio.ini:Code:#include "mbed.h" #include <thread> #include <atomic> #include <chrono> #include <iostream> #include <string> int main (int argC, char *argV[]) { // Serielles Terminal initialisieren. Serial pc(SERIAL_TX, SERIAL_RX); pc.baud(115200); auto func1 = [] { std::cout << "Hi Alexander" << std::endl; }; func1 (); std::string strText1 = "Wie gehts Dir?"; auto func2 = [&] () { std::cout << strText1 << std::endl; }; func2 (); // Das geht noch nicht "this_thread" kennt er nicht: std::this_thread::sleep_for (std::chrono::microseconds (100000)); std::string strText2 = "Gut danke ..."; auto func3 = [] (std::string& strText) { std::cout << strText << std::endl; }; func3 (strText2); return 0; }
picoterm Ausgabe:Code:[env:disco_l475vg_iot01a] platform = ststm32 board = disco_l475vg_iot01a framework = mbed upload_protocol = stlink build_flags = -std=c++17
Wenn ich das richtig sehe kümmert sich hier mbed nur um die Ausgabe auf das serielle Terminal. Leider tun die bei mbed wieder so als wenn die Welt nur Windows hätte und macht zwar den Linefeed aber nicht den Carriage Return. Deshalb sind die Zeilen dann eingerückt. Habe aber leider keine Ahnung was man da bei picocom umstellen muss damit es tut wie Windows bei Zeilenumbruch.Code:picocom v2.2 port is : /dev/ttyACM0 flowcontrol : none baudrate is : 115200 parity is : none databits are : 8 stopbits are : 1 escape is : C-a local echo is : no noinit is : no noreset is : no nolock is : no send_cmd is : sz -vv receive_cmd is : rz -vv -E imap is : omap is : emap is : crcrlf,delbs, Type [C-a] [C-h] to see available commands Terminal ready Hi Alexander Wie gehts Dir? Gut danke ...
<Edit>
Das hat mir gerade jemand geflüstert: picocom /dev/ttyACM0 --imap lfcrlf -b 115200
So werden die Zeilen richtig untereinander ausgegeben.
</Edit>







Zitieren

Lesezeichen