Gast
#4810548
Hallo, Ich benutze die HAL Bibliothek von STM32 und habe jetzt einen UART zum Laufen bekommen. Bei einem Fehler werden (zunächst für Debugzwecke) diese Funktionen aufgerufen. Dabei löscht die HAL Bibliothek selbständig die Flags und ruft HAL_UART_ErrorCallback im Falle eines Fehlers auf. void HAL_UART_ErrorCallback(UART_HandleTypeDef *UartHandle) { Error_Handler(); } void Error_Handler(void) { /* Turn LED2 on */ BSP_LED_On(LED2); while(1) { /* Error if LED2 is slowly blinking (1 sec. period) */ BSP_LED_Toggle(LED2); HAL_Delay(1000); } } Wenn ich einen Overrun provoziere, bleibt das Programm aber im HAL_Delay stecken. Die LED blinkt nicht; der uwTick Counter zählt nicht hoch. Wenn ich den ErrorHandler nicht aufrufe und einfach nichts mache (in der Callback Funktion) läuft das Programm normal weiter. Woran könnte es liegen, dass der ErrorHandler nicht funktioniert? Wenn ich diesen zB in der main aufrufe funktioniert die Funktion.