
restart reason
Dependencies: mbed BSP_DISCO_F746NG
main.cpp
- Committer:
- iliatumash
- Date:
- 2020-12-09
- Revision:
- 0:b487e94f8ecd
File content as of revision 0:b487e94f8ecd:
#include "mbed.h" #include "stm32746g_discovery_lcd.h" #include "ResetReason.h" #include <string> static BufferedSerial pc(USBTX, USBRX); Thread reading; std::string reset_reason_to_string(const reset_reason_t reason) { switch (reason) { case RESET_REASON_PIN_RESET: return "Button Reset"; case RESET_REASON_SOFTWARE: return "Comand Reset"; case RESET_REASON_WATCHDOG: return "Watchdog Reset"; default: return "Other Reason"; } } void read_serial(){ char *c = new char[1]; while (1) { pc.read(c, sizeof(c)); if(*c == 'r'){ NVIC_SystemReset(); } } } void display(){ BSP_LCD_Init(); BSP_LCD_LayerDefaultInit(LTDC_ACTIVE_LAYER, LCD_FB_START_ADDRESS); BSP_LCD_SelectLayer(LTDC_ACTIVE_LAYER); BSP_LCD_Clear(LCD_COLOR_BLUE); BSP_LCD_SetFont(&LCD_DEFAULT_FONT); BSP_LCD_SetBackColor(LCD_COLOR_BLUE); BSP_LCD_SetTextColor(LCD_COLOR_WHITE); } int main() { display(); const reset_reason_t reason = ResetReason::get(); BSP_LCD_DisplayStringAt(0, 80, (uint8_t *)reset_reason_to_string(reason).c_str(), CENTER_MODE); printf("Reason: %s\n", reset_reason_to_string(reason).c_str()); Watchdog &watchdog = Watchdog::get_instance(); watchdog.start(5000); reading.start(read_serial); while(1) {} }