一般的には、特にで有効にした割り込みフラグを処理するだけで済みますUSART_ITConfig()
。
ただし、RXNE割り込み(USART_ITConfig(USARTx, USART_IT_RXNE)
)を有効にすると、オーバーラン割り込みも有効になります!したがって、これらの両方を処理する必要があります。
USARTフラグは紛らわしい場合があります。個別のステータスフラグと割り込みフラグがあり、それらは同様の名前を共有します。例:USART_IT_RXNE
およびUSART_FLAG_RXNE
。
さらに、これらのフラグをクリアするさまざまな方法があります。たとえば、USART_ClearITPendingBit()
関数は4つの(10のうちの)可能なフラグに対してのみ機能します。
割り込みフラグとその使用方法の概要を以下に示します。これらはSTM32F105に固有のものですが、代表的なものです。
USART_IT_TXE-「送信データレジスタが空です」
- 呼び出すと自動的にクリアされます
USART_SendData()
USART_IT_RXNE-「受信データレジスタが空ではありません」
呼び出すと自動的にクリアされます USART_ReceiveData(USARTx)
呼び出すことで手動でクリアできます USART_ClearITPendingBit(USARTx, USART_IT_RXNE)
USART_IT_TC-「送信完了」
USART_IT_CTS- "CTS変更"
- 呼び出しによりクリア
USART_ClearITPendingBit(USARTx, USART_IT_CTS)
USART_IT_LBD-「LINブレークが検出されました」
- 呼び出しによりクリア
USART_ClearITPendingBit(USARTx, USART_IT_LBD)
USART_IT_PE-「パリティエラー」
- クリア:
USART_GetITStatus(USARTx, USART_IT_PE)
に続く
USART_ReceiveData(USARTx)
USART_IT_NE-「ノイズエラー」
- クリア:
USART_GetITStatus(USARTx, USART_IT_NE)
に続く
USART_ReceiveData(USARTx)
USART_IT_ORE-「オーバーランエラー」
- クリア:
USART_GetITStatus(USARTx, USART_IT_ORE)
に続く
USART_ReceiveData(USARTx)()
USART_IT_IDLE-「アイドルラインが検出されました」
- クリア:
USART_GetITStatus(USARTx, USART_IT_IDLE)
に続く
USART_ReceiveData(USARTx)()