Grundlegende putchar (printf) Ausgabe

OP #5529738
Lesenswert?

Hallo zusammen,

ich habe einen Mikrocontroller bekommen und will damit jetzt eine 
putchar (printf) Ausgabe darüber machen, da ich leider sehr neu im 
Bereich Mikrocontroller bin, geht es jetzt erst einmal um das 
Verständnis. Das bedeutet, ich habe ein Board mit 78 I/O Ports, wie 
überträgt man damit genau Signale?

Das Board habe ich: 
https://www.st.com/content/ccc/resource/technical/document/user_manual/98/2e/fa/4b/e0/82/43/b7/DM00105823.pdf/files/DM00105823.pdf/jcr:content/translations/en.DM00105823.pdf

Ich möchte jetzt gerne verstehen, wie man über die I/O Pins Signale, 
bzw. in diesem Fall Chars überträgt.


Vielen Dank für die Verständnis Erklärungen.
Gast #5529758
Lesenswert?

Raphael K. schrieb:
> und will damit jetzt eine
> putchar (printf) Ausgabe darüber machen

Warum bloß !!! wollen alle Neulinge als Allererstes auf ihrem noch 
unbekannten Controller mit printf und Konsorten loslegen?

Guck zu allererst ins Manual - genauer in das zum Chip gehörige 
Datenblatt UND in das Familien-Referenzmanual.

Zuerst schaust du dir die Kapitel zur Pin-Einrichtung an, um zu lernen, 
was für periphere Cores man auf welche Pins legen kann, also wo z.B. 
UART1 herausschauen kann.

Dann lerne, die Einstellunge der Pins zu verstehen, also WIE man z.B. 
UART1 auf die betreffenden Pins legt.

Dann lies dir das Kapitel über die dich interessierenden Peripheriecores 
durch, also z.B. über den UART1 und lerne, wie man ihn 
zweckdienlichermaßen richtig aufsetzt. Also Baudrate, Datenformat, 
Parität usw., aber auch, auf welche Zustände hin er einen Interrupt 
erzeugen soll.

Hinweis: bei allen STM32 sind m.W. die Interrupts für TXleer und RXvoll 
pegelgetriggert und nicht flankengetriggert.

Dann konzipierst du dir einen Lowlevel-Treiber, der aus deinen sonstigen 
Programmteilen gelieferte Zeichen zwischenpuffert und interruptgesteuert 
über den UART1 sendet.

Und den probierst du erstmal OHNE irgendwelches printf-Gerappel mit 
einer einfachen Zeichenfolge aus, die du z.B. 1x pro Sekunde sendest.

So herum.
Fange erstmal mit dem Fundament an und nicht mit dem Dachdecker.

W.S.
Gast #5529762
Lesenswert?

Raphael K. schrieb:
> ich habe ein Board mit 78 I/O Ports

Wenn es ein Nucleo-64 ist, bedeutet das, dass der Mikrocontroller auf 
dem Board 64 Pins hat. Welcher Controller genau das ist, steht auf dem 
Board, die verlinkte Doku ist allgemein. 78 IOs hast Du wahrscheinlich 
dann nicht.

Magst Du Dir nicht vielleicht erstmal einen einfachen Arduino zulegen? 
Damit sollte der Einstieg und das printf einfacher sein.
#5529777
Lesenswert?

Peter schrieb:
> Raphael K. schrieb:
>> ich habe ein Board mit 78 I/O Ports
>
> Wenn es ein Nucleo-64 ist, bedeutet das, dass der Mikrocontroller auf
> dem Board 64 Pins hat. Welcher Controller genau das ist, steht auf dem
> Board, die verlinkte Doku ist allgemein. 78 IOs hast Du wahrscheinlich
> dann nicht.
>
> Magst Du Dir nicht vielleicht erstmal einen einfachen Arduino zulegen?
> Damit sollte der Einstieg und das printf einfacher sein.

auch wenn man ein nucleo board geschenkt bekommen hat lohnt es sich
6.- Euro für einen Arduino-Uno-Board auszugeben.
Aber als Anfänger vielleicht den gesockelten.
Gast #5530206
Lesenswert?

Es läuft wohl darauf hinaus, irgendeine serielle Übertragung per 
Software zu implementieren. Das kann sehr einfach bis komplex realisiert 
werden. Allerdings tut man das normalerweise nur im Notfall, z.B. wenn 
der µC zu wenig Schnittstellen hat. Aber gerade die STM32 Controller 
haben reichlich Schnittstellen.

Ich würde dem TO raten, dieses Board erst einmal so zu verwenden, wie es 
vom Chip Hersteller vorgesehen ist. Irgendwelche trickreichen 
Zweckentfremdungen sind nichts für Anfänger.

> Fange erstmal mit dem Fundament an und nicht mit dem Dachdecker.
Ja
Gast #5530217
Lesenswert?

Vor dem selber-programmieren einer wie auch immer gearteten seriellen 
Schnittstelle solltest du wissen, welches Protokoll du implementieren 
möchtest und wie es funktioniert. Einfach irgend eins zu implementieren 
ist sinnlos.

Welches soll es denn sein?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren