ARMマイクロコントローラーポートからデータを読み取る手順
-
06-07-2019 - |
質問
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割り込みを機能させることができるため、受信データを処理するために受信割り込みが生成されます。
所属していません StackOverflow