2011-01-11 10 views
8

特に8051のマイクロコントローラ用のC言語のサンプルコードでは "printf"命令を参照してください。マイクロコントローラには固定出力ディスプレイがないので、 "printf"命令の使用は何ですか?"printf"マイクロコントローラでは、それは何ですか?

+0

多分刺激装置/デバッガのスタブですか?ライブラリのソースコードを見ずにはわかりません。 –

答えて

16

デバッグコンソールをRS232ポート経由で接続することも、インサーキットエミュレータからのバーチャル出力として接続することもできます。

7

あなたはハイパーターミナルを使用して、あなたが

printfのデータをPCのシリアルポートにマイクロコントローラをインタフェースし、監視することができます。また、診断目的でも使用することができます

11

printfは出力出力ではなくstdoutに出力するように定義されています。stdoutは任意のストリームデバイスです。通常、ディスプレイのないシステムでは、シリアルインタフェース(UART)に出力されるため、端末または端末エミュレータ(HyperTerminalまたはTeraTermなど)を表示デバイスとして使用できます。

いくつかの開発環境では、stdio、stdin、およびstderr、場合によってはデバッガインタフェース(JTAG、ICE、SWDなど)を介して開発ホストによって提供される "セミホスト"が実装されています。

一般に、コンパイラのライブラリはフックまたはスタブを提供し、代替ストリームI/Oデバイス用のドライバを実装することができます。たとえば、デバイスに1つのデバイスがある場合はprintfをLCDディスプレイに出力します。これを「リターゲッティング」といいます。

4

いくつかの開発ツールを使用すると、のputcharまたはputchの実装与えのprintfを使用することができます。そのようなツールでは、この関数があるデバイスに文字を送るので、printfはそのデバイスにメッセージを表示します。

デバイスの初期化を正しく行うだけで、putcharやputchなど(コンパイラ/ libドキュメントをチェックしてください)とvoilaを実装するだけです!あなたのprintfはあなたが期待しているように動作します。

PS:一部のコンパイラ/ライブラリは、のprintf形式指定子を実装していません。再度、あなたのドキュメントをチェックしてください。

関連する問題