0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

STM32 LL UARTがOREで氏ぬ時の対処

Last updated at Posted at 2023-09-06

こんにちは。STM32でLL使ってUARTで基板間通信させようとした時にOREで詰んでたのでその時の対処法をば。

結論

割り込みを一旦止めてからUARTを初期化する事で解決。
例(USART2、割り込み処理):

// stm32〜_it.c

// 〜略〜

void USART2_IRQHandler() {
    /* USER CODE BEGIN USART2_IRQn 0 */

    // 〜略〜

    if(LL_USART_IsActiveFlag_ORE(USART2)) {
        LL_USART_ReceiveData8(USART2);
        LL_USART_DisableIT_RXNE(USART2);
        MX_USART2_UART_Init();
        LL_USART_EnableIT_RXNE(USART2);
    }

    // 〜略〜
}

考察というか憶測

OREのフラグ単体を折ったりしても解決しなかったし、何より参考記事だとHALで色んなフラグを折ったりしてるので受信完了あたりのフラグが悪さしてる、と思われる多分。

参考記事

後記

ただでさえSTM32関連記事って少ない印象なのにほとんどが古いかHALでLLのだと全然転がってないのがツラい。
リファレンスとヘッダファイルだけが友達さ...とか言ってみたいなぁ
あと記事名に「氏ぬ」って入れるのどうなの

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?