質問

ARM LPC2378マイクロコントローラーからシリアルデータを読み取ることができません。 UARTを使用する必要がありますか、またはGPIOポートを使用できますか? ayoneはcコードを持っていますか?

役に立ちましたか?

解決

GPIOポートを使用することは技術的に可能ですが、ソフトウェアはビットタイミング、フレーミング、エラーチェックなどを担当します。多くの場合、" bit-banging" はコードがすべての処理を行う必要があるため、CPUに負荷がかかるためです。データレートを下げるには、タイマー割り込みから実行できます。

UARTを使用する方がはるかに簡単です— UARTはビットタイミング、フレーミング、エラーチェックなどのハードワークを行います。

LPC2378データシートによると、マイクロコントローラーには4つのUARTがあります。そのため、UARTを使用する方法があります。シリアルデータはどのピンに入力されますか?シリアルデータは、4つのUARTのいずれかに接続できるピンに接続する必要があります。 UARTを使用するように設定するには、マイクロコントローラーにいくつかのレジスタを設定する必要があります。

  • UARTとその設定を有効にします(多くの設定があります)
  • UARTの入力であるピンを設定する(おそらく)
  • その他のピン設定

最初は、UARTをポーリングして、その「RXバイトが利用可能」を読み取ります。 「使用可能なバイトがあります」と表示されるまでフラグを立て、受信バイトレジスタからバイトを読み取ります。また、RXエラーフラグレジスタを読み取り、エラーがあるかどうかを確認します。

それが機能した後、RX割り込みを機能させることができるため、受信データを処理するために受信割り込みが生成されます。

この種のことは、ユーザーマニュアルおよびデータシート。お楽しみください!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top