convert usart.c to cpp class
This commit is contained in:
@@ -4,6 +4,7 @@
|
||||
|
||||
#include <string_view>
|
||||
|
||||
#include "pindef.hpp"
|
||||
#include "stm32f4xx_hal_uart.h"
|
||||
|
||||
namespace driver::usart {
|
||||
@@ -20,9 +21,35 @@ Usart::Usart(USART_TypeDef* usart, uint32_t baudRate, uint32_t wordLength, uint3
|
||||
.OverSampling = overSampling}} {}
|
||||
|
||||
bool Usart::init() {
|
||||
GPIO_InitTypeDef GPIO_InitStruct = {0};
|
||||
if (mHandle.Instance == USART2) {
|
||||
// USART2 clock enable
|
||||
__HAL_RCC_USART2_CLK_ENABLE();
|
||||
__HAL_RCC_GPIOA_CLK_ENABLE();
|
||||
// USART2 GPIO Configuration
|
||||
// PA2 -> USART2_TX
|
||||
// PA3 -> USART2_RX
|
||||
|
||||
GPIO_InitStruct.Pin = USART_TX_Pin | USART_RX_Pin;
|
||||
GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
|
||||
GPIO_InitStruct.Pull = GPIO_NOPULL;
|
||||
GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW;
|
||||
GPIO_InitStruct.Alternate = GPIO_AF7_USART2;
|
||||
HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
|
||||
}
|
||||
|
||||
return HAL_UART_Init(&mHandle) != HAL_OK;
|
||||
}
|
||||
|
||||
void Usart::deinit() {
|
||||
if (mHandle.Instance == USART2) {
|
||||
/* Peripheral clock disable */
|
||||
__HAL_RCC_USART2_CLK_DISABLE();
|
||||
|
||||
HAL_GPIO_DeInit(GPIOA, USART_TX_Pin | USART_RX_Pin);
|
||||
}
|
||||
}
|
||||
|
||||
void Usart::print(const std::string_view str) {
|
||||
tx(str);
|
||||
};
|
||||
|
Reference in New Issue
Block a user