Changed UART reg structs

This commit is contained in:
2025-09-07 01:57:22 -07:00
parent 40ee0e6834
commit 465055fc53
10 changed files with 249 additions and 60 deletions

View File

@@ -1,19 +1,50 @@
//
// Created by Luca on 9/6/2025.
//
/**
******************************************************************************
* @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_GPIO_REG.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] = {};
};