#include "init.h" #include "terminal.hpp" #include "uart.hpp" using serial_t = uart::Vcp<>; using terminal_t = Terminal; static volatile bool g_error = false; extern "C" void Error_Handler(void) { g_error = true; } static inline void initializeHardware() { terminal_t terminal; do { g_error = false; init(); terminal.init(); HAL_GPIO_WritePin(RED_LED_GPIO_Port, RED_LED_Pin, g_error ? GPIO_PIN_RESET : GPIO_PIN_SET); } while(g_error); HAL_GPIO_WritePin(RED_LED_GPIO_Port, RED_LED_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(GREEN_LED_GPIO_Port, GREEN_LED_Pin, GPIO_PIN_RESET); HAL_GPIO_WritePin(BLUE_LED_GPIO_Port, BLUE_LED_Pin, GPIO_PIN_RESET); HAL_Delay(1000); HAL_GPIO_WritePin(RED_LED_GPIO_Port, RED_LED_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(GREEN_LED_GPIO_Port, GREEN_LED_Pin, GPIO_PIN_SET); HAL_GPIO_WritePin(BLUE_LED_GPIO_Port, BLUE_LED_Pin, GPIO_PIN_SET); } int main() { initializeHardware(); terminal_t terminal; while(true) { terminal.callback(); } return 0; }