From 1bcc3bdc28c0f0fc5f53b7b3d11f23a33166bb20 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Thu, 8 Aug 2024 22:56:38 +0800 Subject: [PATCH] update --- usrc/board/large_space_dm_power_ctrl_board.cpp | 26 ++++++++++++++-------- usrc/board/share/h2o2_sensor_driver.cpp | 2 ++ .../large_space_dm_power_ctrl_board_pp.cpp | 2 +- usrc/utils/halutils.hpp | 9 +++----- zsdk | 2 +- 5 files changed, 24 insertions(+), 17 deletions(-) diff --git a/usrc/board/large_space_dm_power_ctrl_board.cpp b/usrc/board/large_space_dm_power_ctrl_board.cpp index d2c057d..8fd42ff 100644 --- a/usrc/board/large_space_dm_power_ctrl_board.cpp +++ b/usrc/board/large_space_dm_power_ctrl_board.cpp @@ -86,13 +86,15 @@ PB1 ------> ADC1_IN9 static void MX_USART2_UART_Init(void) { __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 = 19200; huart2.Init.WordLength = UART_WORDLENGTH_8B; - huart2.Init.StopBits = UART_STOPBITS_1; + huart2.Init.StopBits = UART_STOPBITS_2; huart2.Init.Parity = UART_PARITY_NONE; huart2.Init.Mode = UART_MODE_TX_RX; huart2.Init.HwFlowCtl = UART_HWCONTROL_NONE; @@ -100,8 +102,6 @@ static void MX_USART2_UART_Init(void) { if (HAL_UART_Init(&huart2) != HAL_OK) { Error_Handler(); } - UART_HandleTypeDef* uartHandle = &huart2; - /**USART2 GPIO Configuration PD5 ------> USART2_TX PD6 ------> USART2_RX @@ -117,7 +117,6 @@ static void MX_USART2_UART_Init(void) { HAL_NVIC_SetPriority(USART2_IRQn, 5, 0); HAL_NVIC_EnableIRQ(USART2_IRQn); - // DMAINI __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); @@ -160,7 +159,7 @@ static void MX_USART3_UART_Init(void) { /* DMA controller clock enable */ __HAL_RCC_DMA1_CLK_ENABLE(); - HalUtils::uartdmainit(&huart2, &hdma1_stream1, DMA_CHANNEL_4, &hdma1_stream3, DMA_CHANNEL_4); + HalUtils::uartdmainit(&huart3, &hdma1_stream1, DMA_CHANNEL_4, &hdma1_stream3, DMA_CHANNEL_4); HAL_NVIC_SetPriority(DMA1_Stream1_IRQn, 5, 0); HAL_NVIC_EnableIRQ(DMA1_Stream1_IRQn); HAL_NVIC_SetPriority(DMA1_Stream3_IRQn, 5, 0); @@ -170,6 +169,7 @@ static void MX_USART3_UART_Init(void) { void LargeSpaceDmPowerCtrlBoard::initialize() { MX_USART2_UART_Init(); MX_USART3_UART_Init(); + adcInit(); /*********************************************************************************************************************** * 加热片 * @@ -196,8 +196,10 @@ void LargeSpaceDmPowerCtrlBoard::initialize() { /** * @brief 探测HMP110 */ + ZLOGI(TAG, "H2O2 Sensor detect start"); osDelay(2000); // 等待传感器上电 - m_h2o2Sensor.initialize(&huart2, &hadc1, ADC_CHANNEL_0); + m_h2o2Sensor.initialize(&huart2, &hadc1, ADC_CHANNEL_10); + ZLOGI(TAG, "H2O2 Sensor detect end"); osThreadDef(AdcCaptureThread, c_onAdcCaptureThread, osPriorityNormal, 0, 1024); AdcCaptureThreadId = osThreadCreate(osThread(AdcCaptureThread), NULL); @@ -206,15 +208,21 @@ void LargeSpaceDmPowerCtrlBoard::initialize() { void LargeSpaceDmPowerCtrlBoard::onAdcCaptureThread() { while (1) { // osDelay(30); + m_Blowser_electricCurrentAdc.updateAdcValToCache(); + m_AirCompressor_electricCurrentAdc.updateAdcValToCache(); m_Heater_electricCurrentAdc.updateAdcValToCache(); m_Heater_temperatureAdc.updateAdcValToCache(); - m_AirCompressor_electricCurrentAdc.updateAdcValToCache(); - m_Blowser_electricCurrentAdc.updateAdcValToCache(); osDelay(1000); int32_t adcv1 = m_Blowser_electricCurrentAdc.getCacheVal(); int32_t adcv2 = m_AirCompressor_electricCurrentAdc.getCacheVal(); int32_t adcv3 = m_Heater_electricCurrentAdc.getCacheVal(); - ZLOGI(TAG, "b:%d, a:%d, h:%d", adcv1, adcv2, adcv3); + int32_t adcv4 = m_Heater_temperatureAdc.getCacheVal(); + + ZLOGI(TAG, "b:%d(%d), a:%d(%d), h:%d(%d) ht:%d(%d)", // + blower_read_electric_current(), adcv1, // + air_compressor_read_electric_current(), adcv2, // + heater_read_electric_current(), adcv3, // + heater_read_temperature_data(), adcv4); } } diff --git a/usrc/board/share/h2o2_sensor_driver.cpp b/usrc/board/share/h2o2_sensor_driver.cpp index 05ac188..0ffed30 100644 --- a/usrc/board/share/h2o2_sensor_driver.cpp +++ b/usrc/board/share/h2o2_sensor_driver.cpp @@ -14,6 +14,8 @@ static void c_onH2O2CaptureThread(void const* argument) { void H2O2SensorDriver::initialize(UART_HandleTypeDef* huart, ADC_HandleTypeDef* hadc, int32_t adcChannel) { ZASSERT(huart->Init.BaudRate == 19200); + ZASSERT(huart->Init.StopBits == UART_STOPBITS_2); + m_ModbusBlockHost.initialize(huart); m_H2O2Adc.initialize("H2O2Adc", hadc, adcChannel); m_HMP110.init(&m_ModbusBlockHost); diff --git a/usrc/protocol_processer_impl/large_space_dm_power_ctrl_board_pp.cpp b/usrc/protocol_processer_impl/large_space_dm_power_ctrl_board_pp.cpp index 933c39c..ac99a7d 100644 --- a/usrc/protocol_processer_impl/large_space_dm_power_ctrl_board_pp.cpp +++ b/usrc/protocol_processer_impl/large_space_dm_power_ctrl_board_pp.cpp @@ -28,7 +28,7 @@ void LargeSpaceDmPowerCtrlBoardPP::initialize() { BIND_FN(H2O2SensorPP, h2o2_sensor_read_sub_ic_errorcode); BIND_FN(H2O2SensorPP, h2o2_sensor_read_sub_ic_reg); - H2O2SensorPP::ins()->initialize(&DEVICE->m_h2o2Sensor); + // H2O2SensorPP::ins()->initialize(&DEVICE->m_h2o2Sensor); } /*********************************************************************************************************************** diff --git a/usrc/utils/halutils.hpp b/usrc/utils/halutils.hpp index a384301..7ec1a86 100644 --- a/usrc/utils/halutils.hpp +++ b/usrc/utils/halutils.hpp @@ -9,9 +9,7 @@ namespace iflytop { class HalUtils { public: - static void uartdmainit(UART_HandleTypeDef* uart, DMA_HandleTypeDef* txdma, uint32_t txdmach, DMA_HandleTypeDef* rxdma, uint32_t rxdmach) { - /* USART2 DMA Init */ - /* USART2_RX Init */ + static void uartdmainit(UART_HandleTypeDef* uart, DMA_HandleTypeDef* rxdma, uint32_t rxdmach, DMA_HandleTypeDef* txdma, uint32_t txdmach) { rxdma->Instance = getDmaStreamTypeDef(rxdma); rxdma->Init.Channel = rxdmach; rxdma->Init.Direction = DMA_PERIPH_TO_MEMORY; @@ -22,13 +20,13 @@ class HalUtils { rxdma->Init.Mode = DMA_NORMAL; rxdma->Init.Priority = DMA_PRIORITY_LOW; rxdma->Init.FIFOMode = DMA_FIFOMODE_DISABLE; + ZASSERT(rxdma->Instance); if (HAL_DMA_Init(rxdma) != HAL_OK) { Error_Handler(); } __HAL_LINKDMA(uart, hdmarx, *rxdma); - /* USART2_TX Init */ txdma->Instance = getDmaStreamTypeDef(txdma); txdma->Init.Channel = txdmach; txdma->Init.Direction = DMA_MEMORY_TO_PERIPH; @@ -39,13 +37,12 @@ class HalUtils { txdma->Init.Mode = DMA_NORMAL; txdma->Init.Priority = DMA_PRIORITY_LOW; txdma->Init.FIFOMode = DMA_FIFOMODE_DISABLE; + ZASSERT(rxdma->Instance); if (HAL_DMA_Init(txdma) != HAL_OK) { Error_Handler(); } __HAL_LINKDMA(uart, hdmatx, *txdma); - - } }; diff --git a/zsdk b/zsdk index b05095f..9f85aa3 160000 --- a/zsdk +++ b/zsdk @@ -1 +1 @@ -Subproject commit b05095f6f18dbf58877e487caa0013066d077612 +Subproject commit 9f85aa311eb817787e4064d29f57d7bb724d45e7