Frage

Ich sehe „printf“ Befehl in Probe-Codes von C-Sprache für Mikrocontroller besonders in 8051. Da Mikrocontroller keine Ausgangsanzeige festgelegt hat, was die Verwendung des „printf“ Befehls?

War es hilfreich?

Lösung

Wahrscheinlicher als nicht, so dass Sie eine Debug-Konsole anschließen können, entweder über eine RS232-Schnittstelle, oder als virtuelle Ausgabe von einem In-Circuit-Emulator.

Andere Tipps

printf zur Ausgabe definiert stdout keine „Ausgabe-Display“, kann stdout jedes Stream-Gerät sein. Typischerweise auf einem System ohne eine Anzeige gibt er an eine serielle Schnittstelle (UART), so dass ein Terminal oder Terminalemulator (Hyper-Terminal oder TeraTerm zum Beispiel) kann als eine Anzeigevorrichtung verwendet werden.

Einige Entwicklungsumgebungen implementieren "semi-Hosting", wo stdio, stdin und stderr, und in einigen Fällen sogar ein Dateisystem durch die Entwicklung Host über die Debugger-Schnittstelle zur Verfügung gestellt werden (JTAG, ICE, SWD usw.).

Im Allgemeinen werden Ihre Compiler Bibliothek werden Sie mit Haken oder Stubs, so dass Sie Treiber für alternative Strom-E / A-Geräte, so zum Beispiel implementieren und Sie können implementieren könnte, so dass printf ausgeben wird auf einer LCD-Anzeige, wenn Ihr Gerät eine hat. Dies wird als "retargetting".

Sie können die Schnittstelle des Mikrocontrollers an die serielle Schnittstelle des PCs und überwachen die Daten, die Sie

printf

Hyperterminal. Sie können auch für diagnostische Zwecke nutzen

Einige Entwicklungstools können Sie verwenden printf gegeben eine Implementierung von putchar oder putch . In einem solchen Tools, da Sie diese Funktion haben Zeichen auf einem Gerät zu senden, wird printf zeigen Nachrichten auf diesem Gerät.

Sie müssen nur das richtige Gerät Initialisierung tun, implementieren putchar, putch oder solche (überprüfen Sie Ihre Compiler / lib docs) und voilá! Ihr printf wird so verhalten, wie Sie erwarten.

PS: Einige Compiler / Bibliotheken nicht implementieren all printf Formatbezeich. Wieder finden Sie Ihre Dokumente.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top