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
Martin schrieb: > uss ich zus. noch mit > USART_GetFlagStatus()die Flags in der ISR abfragen? zumindest die, deren Interrupts du auch freigeschaltet hast.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.