Forum: Mikrocontroller und Digitale Elektronik Grundlegende putchar (printf) Ausgabe


von Raphael K. (raphael_k)


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.

von Werner S. (wernertrp)


Lesenswert?

ich nehme mal an Du willst nicht die UART Leitung verwenden ?
sondern einen I/O pin ??? oder sogar mehrere I/O Pins ?

von Raphael K. (raphael_k)


Lesenswert?

Ja korrekt

von W.S. (Gast)


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.

von Peter (Gast)


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.

von Werner S. (wernertrp)


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.

von Stefan F. (Gast)


Lesenswert?

Welcher Mikrocontroller sitzt auf den Board? Falls seine Nummer mit 
STM32F1 beginnt, werden dich meine Notizen weiter bringen: 
http://stefanfrings.de/stm32/index.html

von Wegstaben V. (wegstabenverbuchsler)


Lesenswert?

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

Wohin willst du die denn übertragen?

von Stefan F. (Gast)


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

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?


von Stefan F. (Gast)


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?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.