#pragma once #include #include #include #include #include namespace hal { class uart_stm32 : public uart { public: uart_stm32(USART_TypeDef *inst); void init(std::uint32_t baudrate = c_baudrate_default) override; void write_array(const char * ptr, std::size_t len) override; private: UART_HandleTypeDef huart_; USART_TypeDef *instance_; std::uint32_t baudrate_; static constexpr std::uint32_t c_baudrate_default = 115200; }; }; // namespace hal