Gast
#3888498
Hallo, ich programmiere einen STM32 mit der Std Lib von ST. Ich bin bei der USART Programmierung jetzt auf die Funktionen USART_GetFlagStatus() und USART_GetITStatus()gestossen. Mir ist aber nicht klar, was der genaue Unterschied ist. Üblicherweise frage ich in der USART ISR mit der USART_GetITStatus()ab welchees Flag aktiv ist. Durch das Auslesen mit USART_ReceiveData() wird das pending Bit zurückgesetzt. Soweit O.k. Was ist aber wenn ein anderes Flag die ISR auslöst (z.B. Overrun)? Man soll mit der Softwaresequenz 1. USART_GetFlagStatus() 2. USART_ReceiveData() die Flags zurücksetzen können, um ein Dauerfeuer der ISR zu verhindern. Was ist aber wenn ich nur mit USART_GetITStatus() abfrage und dann mit USART_ReceiveData() mein Byte auslese. Kann es dann ev. passieren, das ich nicht alle Flags die auftreten können zurücksetze und ich in der ISR verrecke? Muss ich zus. noch mit USART_GetFlagStatus()die Flags in der ISR abfragen? Martin