問題タブ [stm32-hal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
interrupt - この場合、UART 送信割り込みが機能しないのはなぜですか?
stm32f0 MCU を使用しています。
受信したすべてのバイトが送信される単純な UART エコー コードがあります。動作することをテストしました。ここにあります;
コードは機能しますが、快適ではありません。まず、tx_timeout
は 0 であり、ほとんどのコード例は非ゼロです。副作用はわかりません。次に、HAL_UART_Transmit()
ブロッキング呼び出しであり、割り込み内でブロッキング呼び出しを使用することはお勧めできません。HAL_UART_Transmit_IT()
そこで、ブロッキング呼び出しの代わりにUART 送信に割り込みを使用することにしました。変更されたコードは次のとおりです。
ただし、期待どおりに動作しません。私の PC は ASCII 12345678 を stm32 に送信します。期待どおりに動作する場合、PC は 12345678 を受信しているはずです。ただし、PC は代わりに 1357 を受け取ります。を使用するこのコードの何が問題になっていますHAL_UART_Transmit_IT()
か?
c - ST Micro HAL、stm32f7xx_hal_crc.c 解決方法 [警告] 型がパニングされたポインターを逆参照すると、厳密なエイリアス規則が破られる
STM32Cube_FW_F7_V1.3.0 で、まだ STM32Cube_FW_F7_V1.11.0 で
-Os または -O2 を使用して stm32f7 HAL ライブラリをコンパイルすると、次の警告が表示されます。
注: -O1 は、警告なしでコンパイルします。
警告は正当化されます。コードは正しく動作しているように見えます。ただし、警告はエラーとして扱いたいと思います。
質問: crc モジュールを壊さずに警告を削除するようにコードを変更するにはどうすればよいですか?
注: オンラインのどこにも解決策が見つかりませんでした。
これは、警告の原因となる行の 1 つです。
ハードウェアのcrcレジスタを扱っているため、これを変更するのは少しトリッキーで威圧的だと思います。
これは ST Micro のライセンスであり、ソース コードを配布するときに含める必要があると述べていますが、質問には関係ありません。
関連コード:
警告は、16 ビット CRC 関数にも表示されます。