こんにちは、
現在、DMAと連携するようにLPUART0チャネルの設定を試みています。UARTチャネルは1Mbpsのビットレートで動作している必要があります。
現在のUARTとDMAの設定は以下のようになっています。
MCUではクロックが有効化され、バッファはキャッシュできない領域内に宣言され、DMAのISR優先度はLPUARTよりも小さいです。
私たちの問題は、RXバッファ内のデータを見ることができない、あるいはデータが不完全であることです。
私たちのワークフローはこうです(LINコミュニケーションに似ています)
受信バッファを準備 -> AsyncReceive
スレーブにヘッダーを送信する -> AsyncSend
次のサイクルでスレーブからデータが受信されるまで待機します(私の関数は1msのタスクで実行されます)。
AsyncSendの実行後にブレークポイントを設けると、RXバッファ内のスレーブからのすべてのデータ送信が確認できます。
そのまま実行させても、何も表示されないか、不完全な結果しか得られない。
私の推測では、DMA割り込みは後から発生する。
私たちの設定のどこが問題なのか、あるいは次に何をチェックすればいいのか、いくつかヒントを教えてもらえますか?
ご回答をお待ちしています。
コスミン
こんにちは、@ CosminSbera
1. DMA要求オプションを有効にするのを忘れないでください。
2. 「プラットフォーム」コンポーネントでLPUART0_IRQn割り込みを有効にするのを忘れないでください。
「プラットフォーム」->」LPUART0_IRQn--LPUART_UART_IP_0_IRQHandler」