AnsweredAssumed Answered

Using DbgConsole_GetChar()

Question asked by Ashley Duncan on Sep 28, 2016
Latest reply on Oct 4, 2016 by Ashley Duncan



I use char c = DebugConsole_GetChar(); to read a serial character to simulate operation of a normally keypad driven menu system.  I find that if I send two characters repeatedly, the GetChar function starts always returning 0 every call rather than blocking until a character is received.


I traced this through and it appears that in UART_ReadBlocking it checks the UART status (which has a RX buffer overrun flag set) and returns a kStatus_UART_RxHardwareOverrun.  Which is ignored by the DbgConsole_Getchar function which happily returns the character 0.


Kind of frustrating.  Mainly happens if I pause for debugging and send a character while paused by accident.  So hardware is reporting a correct rx buffer overrun but does not seem to be cleared by the debug console code.  Sometimes if I step through the code when it is stuck it will clear the flag and come right!


Any ideas???