シリアル端末 (Putty) の画面をクリアし、カーソルを画面の左上隅に移動するために、UART 経由で cmd_clr_scr[] = { 27, 91, 50, 74, 27, 91, 72, 0 }; を送信しています。
UART 用のドライバーが 2 つあります。1 つはブロッキング、もう 1 つは非ブロッキングです。ブロッキングとは、すべての文字が送信されるまで UART ISR が返されないことを意味します。一方、非ブロッキング ドライバーでは、UART ISR は最初のバイトを送信するとすぐに返され、次のバイトは送信終了割り込みで送信されます。
問題は、ブロッキング ドライバーを使用して cmd_clr_scr を送信すると想定どおりに動作しますが、非ブロッキング ドライバーを使用すると、テキストをクリアせずにカーソルを画面の左上隅に移動するだけです。ドライバーをステップ実行して二重チェックしましたが、どちらも同じように動作し、まったく同じ文字をまったく同じ順序で送信します。
clear コマンド文字列の使用に関する注意点はありますか?
何かご意見は?
答え1
結局、見つけた文字列を使うことにしたここ質問で言及した文字列の代わりに。ドライバーのバグも見つかりましたが、バグが見つかる前から問題は解決されていたため、これが原因ではなかったと思われます。