Began UART initializer
This commit is contained in:
@@ -9,7 +9,6 @@
|
|||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
|
||||||
#include "SHAL_UART_TYPES.h"
|
#include "SHAL_UART_TYPES.h"
|
||||||
#include "SHAL_GPIO_REG.h"
|
|
||||||
|
|
||||||
#define NUM_USART_LINES 4
|
#define NUM_USART_LINES 4
|
||||||
|
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
#define SHMINGO_HAL_SHAL_UART_TYPES_H
|
#define SHMINGO_HAL_SHAL_UART_TYPES_H
|
||||||
|
|
||||||
#include "SHAL_CORE.h"
|
#include "SHAL_CORE.h"
|
||||||
#include "SHAL_GPIO_REG.h"
|
#include "SHAL_GPIO.h"
|
||||||
|
|
||||||
enum class AF_Mask : uint8_t{
|
enum class AF_Mask : uint8_t{
|
||||||
AF0 = 0x00,
|
AF0 = 0x00,
|
||||||
@@ -30,8 +30,8 @@ struct SHAL_UART_Pair{
|
|||||||
};
|
};
|
||||||
|
|
||||||
struct SHAL_UART_ENABLE_REG{
|
struct SHAL_UART_ENABLE_REG{
|
||||||
volatile uint32_t* USART_EN_Reg;
|
volatile uint32_t* reg;
|
||||||
uint32_t USART_EN_Mask;
|
uint32_t mask;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif //SHMINGO_HAL_SHAL_UART_TYPES_H
|
#endif //SHMINGO_HAL_SHAL_UART_TYPES_H
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ private:
|
|||||||
UART() = default; //Initializer for array
|
UART() = default; //Initializer for array
|
||||||
|
|
||||||
//Creates a UART based on a pair of two valid U(S)ART pins
|
//Creates a UART based on a pair of two valid U(S)ART pins
|
||||||
explicit UART(const UART_Pair pair);
|
explicit UART(UART_Pair pair);
|
||||||
|
|
||||||
UART_Pair m_UARTPair = UART_Pair::INVALID;
|
UART_Pair m_UARTPair = UART_Pair::INVALID;
|
||||||
|
|
||||||
|
|||||||
@@ -8,7 +8,27 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "SHAL_UART.h"
|
#include "SHAL_UART.h"
|
||||||
|
#include "SHAL_GPIO.h"
|
||||||
|
|
||||||
UART::UART(const UART_Pair pair){
|
UART::UART(const UART_Pair pair){
|
||||||
|
SHAL_UART_Pair uart_pair = getUARTPair(pair); //Get the UART_PAIR information to be initialized
|
||||||
|
|
||||||
}
|
//Get the GPIO pins for this UART setup
|
||||||
|
GPIO_Key Tx_Key = uart_pair.TxKey; //Tx pin
|
||||||
|
GPIO_Key Rx_Key = uart_pair.RxKey; //Rx pin
|
||||||
|
|
||||||
|
initGPIO(Tx_Key,PinMode::ALTERNATE_FUNCTION_MODE); //Initialize Tx GPIO with alternate function (initializes GPIO port as well)
|
||||||
|
initGPIO(Rx_Key,PinMode::ALTERNATE_FUNCTION_MODE); //Initialize Rx GPIO with alternate function
|
||||||
|
|
||||||
|
SHAL_UART_ENABLE_REG pairUARTEnable = getUARTEnableReg(pair); //Register and mask to enable the UART channel
|
||||||
|
|
||||||
|
*pairUARTEnable.reg |= pairUARTEnable.mask; //Enable UART line
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
UART& UARTManager::get(UART_Pair pair) {
|
||||||
|
|
||||||
|
//Perform logic for reassigning UART object in array
|
||||||
|
|
||||||
|
return m_UARTs[getUARTChannel(pair)];
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user