Files
lishanpi/drv/uart/uart_driver.h
T

44 lines
914 B
C++
Raw Normal View History

2026-04-26 16:24:42 +08:00
#ifndef __UART_DRIVER_H__
#define __UART_DRIVER_H__
#include <cstdint>
#include "bus_core.h"
enum class UartPort : uint8_t {
_0 = 0,
_1, _2, _3, _4, _5, _6,
MAX
};
class USART {
2026-04-26 16:24:42 +08:00
public:
USART(UartPort port, uint32_t baudrate = 115200);
~USART();
2026-04-26 16:24:42 +08:00
USART(const USART &) = delete;
USART &operator=(const USART &) = delete;
2026-04-26 16:24:42 +08:00
RetCode send_byte(uint8_t data);
RetCode send_data(const uint8_t *data, uint32_t len);
RetCode receive_byte(uint8_t *data, uint32_t timeout_ms);
void reinit(uint32_t baudrate);
2026-04-26 16:24:42 +08:00
UartPort port() const { return port_; }
bool is_initialized() const { return initialized_; }
static void setDefault(USART *uart);
static USART *defaultInstance() { return default_; }
2026-04-26 16:24:42 +08:00
private:
UartPort port_;
uint32_t baudrate_;
2026-04-26 16:24:42 +08:00
bool initialized_ = false;
static USART *default_;
2026-04-26 16:24:42 +08:00
};
extern USART uart_0;
extern USART uart_1;
2026-04-26 16:24:42 +08:00
#endif