add Chapter04/Dockerfile, Chapter04/bare/.clang-tidy

This commit is contained in:
Amar Mahmutbegovic
2024-04-28 16:44:50 +02:00
parent d3c4899268
commit 92f1583cb4
59 changed files with 53 additions and 33 deletions

View File

@@ -5,21 +5,23 @@
#include <uart.hpp>
#include <stm32f0xx_hal.h>
#include <stm32f072xb.h>
namespace hal
{
class uart_stm32 : public uart
{
public:
uart_stm32(USART_TypeDef *inst, std::uint32_t baud = 115200);
uart_stm32(USART_TypeDef *inst, std::uint32_t baud = baudrate_default);
void init() override;
void putchar(char c) override;
void putchar(char tx_char) override;
private:
UART_HandleTypeDef huart;
USART_TypeDef *instance;
std::uint32_t baudrate;
UART_HandleTypeDef huart_;
USART_TypeDef *instance_;
std::uint32_t baudrate_;
static constexpr std::uint32_t baudrate_default = 115200;
};
}; // namespace hal

View File

@@ -1,33 +1,29 @@
#include <uart_stm32.hpp>
hal::uart_stm32::uart_stm32(USART_TypeDef *inst, std::uint32_t baud)
: instance(inst), baudrate(baud)
: instance_(inst), baudrate_(baud)
{
}
void hal::uart_stm32::init()
{
huart.Instance = USART2;
huart.Init.BaudRate = 115200;
huart.Init.WordLength = UART_WORDLENGTH_8B;
huart.Init.StopBits = UART_STOPBITS_1;
huart.Init.Parity = UART_PARITY_NONE;
huart.Init.Mode = UART_MODE_TX_RX;
huart.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart.Init.OverSampling = UART_OVERSAMPLING_16;
huart.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
// huart.MspInitCallback = mspInitCallback;
if(HAL_UART_Init(&huart) != HAL_OK)
{
// Error_Handler();
}
huart_.Instance = USART2;
huart_.Init.BaudRate = baudrate_;
huart_.Init.WordLength = UART_WORDLENGTH_8B;
huart_.Init.StopBits = UART_STOPBITS_1;
huart_.Init.Parity = UART_PARITY_NONE;
huart_.Init.Mode = UART_MODE_TX_RX;
huart_.Init.HwFlowCtl = UART_HWCONTROL_NONE;
huart_.Init.OverSampling = UART_OVERSAMPLING_16;
huart_.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;
huart_.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
// TODO: add GPIO initialization for real hardware
huart_.MspInitCallback = NULL;
HAL_UART_Init(&huart_);
}
void hal::uart_stm32::putchar(char c)
void hal::uart_stm32::putchar(char tx_char)
{
HAL_UART_Transmit(&huart, reinterpret_cast<uint8_t *>(&c), 1,
HAL_UART_Transmit(&huart_, reinterpret_cast<uint8_t *>(&tx_char), 1,
HAL_MAX_DELAY);
}