From 45b37e461e873185f323dd0fc1a6ce87102e7db4 Mon Sep 17 00:00:00 2001 From: sunlight <2524828700@qq.com> Date: Sat, 7 Sep 2024 16:44:32 +0800 Subject: [PATCH] change UART2 RX and Tx --- usrc/app/exth2o2_sensor.cpp | 5 +-- usrc/board/hal/h2o2_ext_board.cpp | 42 ++++++++++++++++++++++ usrc/board/hal/h2o2_ext_board.hpp | 2 ++ usrc/board/hal/large_space_dm_power_ctrl_board.cpp | 2 +- 4 files changed, 48 insertions(+), 3 deletions(-) diff --git a/usrc/app/exth2o2_sensor.cpp b/usrc/app/exth2o2_sensor.cpp index 4bc8e8d..3b4a03a 100644 --- a/usrc/app/exth2o2_sensor.cpp +++ b/usrc/app/exth2o2_sensor.cpp @@ -14,8 +14,8 @@ ExtH2O2Sensor* ExtH2O2Sensor::ins() { static ExtH2O2Sensor instance; return &instance; } -void ExtH2O2Sensor::initialize() { - LargeSpaceDmPowerCtrlBoardHal::HUART3_INIT(19200, UART_STOPBITS_2); +void ExtH2O2Sensor::initialize(s) { + H2O2ExtBoard::HUART2_INIT(19200, UART_STOPBITS_2); H2O2ExtBoard::HADC1_INIT(); h2o2Sensor.initialize(&huart2, &hadc1, ADC_CHANNEL_10); @@ -61,5 +61,6 @@ void ExtH2O2Sensor::onH2O2MonitorThread() { } else { setAlarmLight(kconnected); } + osDelay(1000); } } diff --git a/usrc/board/hal/h2o2_ext_board.cpp b/usrc/board/hal/h2o2_ext_board.cpp index 5dfbd9b..ee42ef1 100644 --- a/usrc/board/hal/h2o2_ext_board.cpp +++ b/usrc/board/hal/h2o2_ext_board.cpp @@ -51,3 +51,45 @@ void H2O2ExtBoard::HADC1_INIT() { Error_Handler(); } } + +void H2O2ExtBoard::HUART2_INIT(int baudrate, uint32_t StopBits) { + __HAL_RCC_USART2_CLK_ENABLE(); + __HAL_RCC_GPIOD_CLK_ENABLE(); + __HAL_RCC_GPIOA_CLK_ENABLE(); + __HAL_RCC_DMA1_CLK_ENABLE(); + + GPIO_InitTypeDef GPIO_InitStruct = {0}; + + huart2.Instance = USART2; + huart2.Init.BaudRate = baudrate; + huart2.Init.WordLength = UART_WORDLENGTH_8B; + huart2.Init.StopBits = StopBits; + huart2.Init.Parity = UART_PARITY_NONE; + huart2.Init.Mode = UART_MODE_TX_RX; + huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; + huart2.Init.OverSampling = UART_OVERSAMPLING_16; + if (HAL_UART_Init(&huart2) != HAL_OK) { + Error_Handler(); + } + /**USART2 GPIO Configuration + PD5 ------> USART2_TX + PD6 ------> USART2_RX + */ + GPIO_InitStruct.Pin = GPIO_PIN_2 | GPIO_PIN_3; + 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_USART2; + HAL_GPIO_Init(GPIOD, &GPIO_InitStruct); + + /* USART2 interrupt Init */ + HAL_NVIC_SetPriority(USART2_IRQn, 5, 0); + HAL_NVIC_EnableIRQ(USART2_IRQn); + + __HAL_RCC_DMA1_CLK_ENABLE(); + HalUtils::uartdmainit(&huart2, &hdma1_stream5, DMA_CHANNEL_4, &hdma1_stream6, DMA_CHANNEL_4); + HAL_NVIC_SetPriority(DMA1_Stream5_IRQn, 5, 0); + HAL_NVIC_EnableIRQ(DMA1_Stream5_IRQn); + HAL_NVIC_SetPriority(DMA1_Stream6_IRQn, 5, 0); + HAL_NVIC_EnableIRQ(DMA1_Stream6_IRQn); +} diff --git a/usrc/board/hal/h2o2_ext_board.hpp b/usrc/board/hal/h2o2_ext_board.hpp index 6c3f679..96edfc1 100644 --- a/usrc/board/hal/h2o2_ext_board.hpp +++ b/usrc/board/hal/h2o2_ext_board.hpp @@ -7,5 +7,7 @@ namespace iflytop { class H2O2ExtBoard { public: static void HADC1_INIT(); + static void HUART2_INIT(int baudrate, uint32_t StopBits); + }; } // namespace iflytop \ No newline at end of file diff --git a/usrc/board/hal/large_space_dm_power_ctrl_board.cpp b/usrc/board/hal/large_space_dm_power_ctrl_board.cpp index c7cc83f..5f2cc0e 100644 --- a/usrc/board/hal/large_space_dm_power_ctrl_board.cpp +++ b/usrc/board/hal/large_space_dm_power_ctrl_board.cpp @@ -85,7 +85,7 @@ void LargeSpaceDmPowerCtrlBoardHal::HUART2_INIT(int baudrate, uint32_t StopBits) PD5 ------> USART2_TX PD6 ------> USART2_RX */ - GPIO_InitStruct.Pin = GPIO_PIN_5 | GPIO_PIN_6; + GPIO_InitStruct.Pin = GPIO_PIN_2 | GPIO_PIN_3; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH;