2072319_ja-JP

キャンセル
次の結果を表示 
表示  限定  | 次の代わりに検索 
もしかして: 

2072319_ja-JP

2072319_ja-JP

S32K3 RTD 5.0.0 - LPUART - 「エンド転送」が示されたときに TX と RX を区別しますか?

私は、S32K3 RTD 5.0.0 で作業し、特に全二重非同期 (割り込み駆動) の送受信操作に Lpuart_Uart_Ip を使用して、S32K344 プロセッサ用のボード サポート ソフトウェアをコーディングしています。

問題 : イベント LPUART_UART_IP_EVENT_END_TRANSFER ID でコールバックを受信するときに、そのコールバックが未処理の TX に関連付けられているのか、未処理の RX 操作に関連付けられているのかを直接区別する方法がないようです。(このイベントは両方によって生成されます。

Lpuart_Uart_Ip.cを調べた後実装、私は私のユースケースで曖昧さを解消するためのやや複雑な方法を決定しました。具体的には:

  • 私は、差し迫ったRXの「転送終了」イベントを期待しているかどうかを追跡します。次の場合に、RX の '転送終了' イベントが差し迫っていると予想しています。
    • 1)LPUART_UART_IP_EVENT_RX_FULLイベントを含むコールバックを受け取りました。
    • 2)そのコールバック内で受信バッファをゼロ以外のサイズにリセットしていません(例:Lpuart_Uart_Ip_SetRxBuffer())。
    • 3) 「転送終了」イベントを示す予期されるコールバックをまだ受け取っていません。
  • 差し迫った RX の "転送終了" イベントが予想される場合、コールバックは未処理の RX 操作に対するものだと想定しています。
  • 他の条件下で "転送終了" コールバックを受け取った場合、そのコールバックは未処理の TX 操作に対するものだと想定しています。

おそらく私は何かを見落としています - 曖昧さを解消するためのより良い方法はありますか?他の RTD 実装には個別の RX コールバックと TX コールバックがありますが、ここではそうではありません。私の提案は、RXとTXに別々の「転送終了」イベントタイプの列挙値を用意することですが、APIに対するそのような変更は下位互換性がなく、おそらく次のメジャーRTDバージョン(例:6.0.0)


タグ(1)
評価なし
バージョン履歴
最終更新日:
‎11-21-2025 09:40 PM
更新者: