Files
Shmingo-HAL/SHAL/Include/Peripheral/GPIO/UART/SHAL_UART.h
2025-09-07 01:57:22 -07:00

52 lines
949 B
C++

/**
******************************************************************************
* @file SHAL_TIM.h
* @author Luca Lizaranzu
* @brief Relating to UART and USART object abstractions
******************************************************************************
*/
#ifndef SHMINGO_HAL_SHAL_UART_H
#define SHMINGO_HAL_SHAL_UART_H
#include "SHAL_UART_REG.h"
class UART{
friend class UARTManager;
public:
//Sends a string
void sendString(const char* s);
//Sends a char
void sendChar(const char c);
private:
UART() = default; //Initializer for array
//Creates a UART based on a pair of two valid U(S)ART pins
explicit UART(const UART_Pair pair);
UART_Pair m_UARTPair = UART_Pair::INVALID;
};
class UARTManager{
public:
static UART& get(UART_Pair);
UARTManager() = delete;
private:
inline static UART m_UARTs[NUM_USART_LINES] = {};
};
#endif //SHMINGO_HAL_SHAL_UART_H