diff --git a/usrc/main.cpp b/usrc/app_main.cpp similarity index 96% rename from usrc/main.cpp rename to usrc/app_main.cpp index c38c4c8..aac0e35 100644 --- a/usrc/main.cpp +++ b/usrc/app_main.cpp @@ -3,6 +3,7 @@ #include "base/config_service.hpp" #include "base/device_info.hpp" +#include "board/public_board.hpp" #include "protocol_impl/protocol_impl_service.hpp" #include "zsdk/zcanreceiver/zcanreceiver.hpp" #include "zsdk/zsdk.hpp" @@ -35,6 +36,7 @@ void debug_light_ctrl() { } void umain() { + PublicBoard::ins()->initialize(); m_debugled.initAsOutput(DEBUG_LIGHT_GPIO, kxs_gpio_nopull, false, false); // config_init(); diff --git a/usrc/board/public_board.cpp b/usrc/board/public_board.cpp new file mode 100644 index 0000000..62d3b30 --- /dev/null +++ b/usrc/board/public_board.cpp @@ -0,0 +1,29 @@ +#include "public_board.hpp" +using namespace iflytop; + +void DEBUG_UART_INIT(void) { + GPIO_InitTypeDef GPIO_InitStruct = {0}; + + __HAL_RCC_USART1_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + + huart1.Instance = USART1; + huart1.Init.BaudRate = 460800; + huart1.Init.WordLength = UART_WORDLENGTH_8B; + huart1.Init.StopBits = UART_STOPBITS_1; + huart1.Init.Parity = UART_PARITY_NONE; + huart1.Init.Mode = UART_MODE_TX_RX; + huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart1.Init.OverSampling = UART_OVERSAMPLING_16; + if (HAL_UART_Init(&huart1) != HAL_OK) { + Error_Handler(); + } + + GPIO_InitStruct.Pin = GPIO_PIN_9 | GPIO_PIN_10; + GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; + GPIO_InitStruct.Pull = GPIO_NOPULL; + GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; + GPIO_InitStruct.Alternate = GPIO_AF7_USART1; + HAL_GPIO_Init(GPIOA, &GPIO_InitStruct); +} +void PublicBoard::initialize() { DEBUG_UART_INIT(); } diff --git a/usrc/board/public_board.hpp b/usrc/board/public_board.hpp new file mode 100644 index 0000000..8a3e144 --- /dev/null +++ b/usrc/board/public_board.hpp @@ -0,0 +1,16 @@ +#include +#include + +#include "zsdk/zsdk.hpp" +#include "zstm32/zstm32.hpp" + +namespace iflytop { +class PublicBoard { + public: + static PublicBoard* ins() { + static PublicBoard instance; + return &instance; + } + void initialize(); +}; +} // namespace iflytop \ No newline at end of file