こんにちは。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のだと全然転がってないのがツラい。
リファレンスとヘッダファイルだけが友達さ...とか言ってみたいなぁ
あと記事名に「氏ぬ」って入れるのどうなの