#include #include #include "utils/usart.h" #include "utils/timebase.h" #include "utils/debounce.h" #include "utils/str_utils.h" #include "init.h" #include "blink.h" /** IRQ */ void USART2_IRQHandler(void) { // RXIE enables also ORE - must handle ORE. if (USART2_SR & USART_SR_ORE) { USART2_SR &= ~USART_SR_ORE; } if (USART2_SR & USART_SR_RXNE) { blue_blink(); // handle incoming char. char c = usart_rx_char(USART2); // echo usart_tx_char(USART2, c); USART2_SR ^= USART_SR_RXNE; } } /** Init peripherals; Called by startup script, before main() */ void SystemInit(void) { init_clock(); init_systick(); init_gpios(); init_usart(); init_adc(); init_dac(); init_pwm1(); } int main(void) { usart_tx_string(USART2, "Hello.\n"); while (1) { delay_ms(500); green_toggle(); } }