#ifndef USART_H #define USART_H template<> void interrupt() { USART1.DR; //GPIOB.ODR ^= 1 << 1; } void usart_enable() { RCC.enable(RCC.USART1); USART1.BRR = 625; // 115200 baud USART1.CR1 = 0x202c; Interrupt::enable(Interrupt::USART1); } void usart_send(uint8_t data) { while(!(USART1.SR & 0x80)) { Thread::yield(); } // Wait for TXE. USART1.DR = data; } #endif