Browse Source

update

master
zhaohe 1 year ago
parent
commit
1bcc3bdc28
  1. 26
      usrc/board/large_space_dm_power_ctrl_board.cpp
  2. 2
      usrc/board/share/h2o2_sensor_driver.cpp
  3. 2
      usrc/protocol_processer_impl/large_space_dm_power_ctrl_board_pp.cpp
  4. 9
      usrc/utils/halutils.hpp
  5. 2
      zsdk

26
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);
}
}

2
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);

2
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);
}
/***********************************************************************************************************************

9
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);
}
};

2
zsdk

@ -1 +1 @@
Subproject commit b05095f6f18dbf58877e487caa0013066d077612
Subproject commit 9f85aa311eb817787e4064d29f57d7bb724d45e7
Loading…
Cancel
Save