add Chapter04/Dockerfile, Chapter04/bare/.clang-tidy
This commit is contained in:
@@ -13,9 +13,9 @@ inline void init()
|
||||
|
||||
struct time
|
||||
{
|
||||
inline static std::uint32_t get_ms()
|
||||
static std::uint32_t get_ms()
|
||||
{
|
||||
return HAL_GetTick();
|
||||
}
|
||||
};
|
||||
}; // namespace hal
|
||||
}; // namespace hal
|
||||
@@ -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
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user