WIP adding uart2

This commit is contained in:
2023-02-23 11:03:57 +01:00
parent 045302cc96
commit 32eca023a5
3 changed files with 63 additions and 24 deletions

View File

@@ -6,11 +6,18 @@
#include "stm32f1xx_it.h"
// USART 1
constexpr auto UART_PORT = GPIOA_BASE;
#define UARTPORT GPIOA
#define UARTTX_PIN GPIO_PIN_9
#define UARTRX_PIN GPIO_PIN_10
// USART 2
constexpr auto UART2_PORT = GPIOA_BASE;
#define UART2PORT GPIOA
#define UART2TX_PIN GPIO_PIN_2
#define UART2RX_PIN GPIO_PIN_3
/*
* small uart wrapper
* assumes USART1 with default pins/port
@@ -19,6 +26,7 @@ template <uint16_t PinTX, uint16_t PinRX, uint32_t Port, uint32_t UsartBase>
struct uart_handler {
static void enable_clocks() {
__HAL_RCC_USART1_CLK_ENABLE();
__HAL_RCC_USART2_CLK_ENABLE();
__HAL_RCC_GPIOA_CLK_ENABLE();
__HAL_RCC_AFIO_CLK_ENABLE();
}
@@ -41,6 +49,10 @@ struct uart_handler {
/* USART1 interrupt Init */
HAL_NVIC_SetPriority(USART1_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USART1_IRQn);
/* USART2 interrupt Init */
HAL_NVIC_SetPriority(USART2_IRQn, 0, 0);
HAL_NVIC_EnableIRQ(USART2_IRQn);
}
static bool enable_oscillators() {
@@ -142,3 +154,6 @@ UART_HandleTypeDef uart_handler<PinTX, PinRX, Port, UsartBase>::s_UARTHandle =
using uart_interface =
uart_handler<UARTTX_PIN, UARTRX_PIN, UART_PORT, USART1_BASE>;
using gps_interface =
uart_handler<UART2TX_PIN, UART2RX_PIN, UART2_PORT, USART2_BASE>;