From 324c26e559b30dfd7ab0ce0ade70a9bd7ff150d2 Mon Sep 17 00:00:00 2001 From: Razvalyaev Date: Mon, 3 Mar 2025 16:49:25 +0300 Subject: [PATCH] =?UTF-8?q?=D0=91=D0=B0=D0=B7=D0=BE=D0=B2=D0=BE=20=D0=B2?= =?UTF-8?q?=D1=81=D1=91=20=D0=B7=D0=B0=D0=BF=D1=83=D1=89=D0=B5=D0=BD=D0=BE?= =?UTF-8?q?.=20=D0=94=D0=B0=D1=82=D1=87=D0=B8=D0=BA=D0=B8=20=D1=81=D1=87?= =?UTF-8?q?=D0=B8=D1=82=D1=8B=D0=B2=D0=B0=D1=8E=D1=82=D1=81=D1=8F=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D0=B8=D1=81=D1=8B=D0=B2=D0=B0=D1=8E=D1=82=D1=81?= =?UTF-8?q?=D1=8F=20=D0=B2=20=D0=BC=D0=BE=D0=B4=D0=B1=D0=B0=D1=81=20=D1=80?= =?UTF-8?q?=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80=D1=8B,=20=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D0=B7=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D1=83=20=D0=B2?= =?UTF-8?q?=D1=8B=D0=B4=D0=B0=D1=8E=D1=82=D1=81=D1=8F.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Есть запас на 27-30 датчиков --- Core/Dallas/dallas_tools.c | 4 +- Core/Dallas/ds18b20_driver.h | 2 +- Core/Dallas/ow_port.c | 4 +- Core/Dallas/pch_sensors.c | 65 +++++++++++++----------- Core/Dallas/pch_sensors.h | 4 +- Core/Inc/tim.h | 3 +- Core/Modbus/crc_algs.c | 9 ++-- Core/Modbus/modbus.c | 21 +++++--- Core/Modbus/modbus_data.h | 70 +++++++++++++------------- Core/Src/main.c | 15 +++--- Core/Src/tim.c | 93 +++++++++++++++++++++++------------ Core/Src/usart.c | 24 --------- MDK-ARM/PY32Dallas.uvoptx | 43 +++++++--------- MDK-ARM/PY32Dallas.uvprojx | 10 ++-- ds18b20_locations.xlsx | Bin 0 -> 9897 bytes 15 files changed, 191 insertions(+), 176 deletions(-) create mode 100644 ds18b20_locations.xlsx diff --git a/Core/Dallas/dallas_tools.c b/Core/Dallas/dallas_tools.c index af66772..5c9cb80 100644 --- a/Core/Dallas/dallas_tools.c +++ b/Core/Dallas/dallas_tools.c @@ -459,7 +459,9 @@ HAL_StatusTypeDef Dallas_ReadTemperature(DALLAS_SensorHandleTypeDef *sensor) /* */ result = Dallas_IsConnected(sensor); if (result != HAL_OK) + { return result; + } result = DS18B20_CalcTemperature(sensor->hdallas->onewire, (uint8_t *)&sensor->sensROM, (uint8_t *)&sensor->hdallas->scratchpad, &sensor->temperature); @@ -495,7 +497,7 @@ HAL_StatusTypeDef Dallas_IsConnected(DALLAS_SensorHandleTypeDef *sensor) } else { - + sensor->temperature = 0; if(sensor->isConnected == 1) { sensor->f.disconnect_cnt++; diff --git a/Core/Dallas/ds18b20_driver.h b/Core/Dallas/ds18b20_driver.h index 96e3831..42d42db 100644 --- a/Core/Dallas/ds18b20_driver.h +++ b/Core/Dallas/ds18b20_driver.h @@ -26,7 +26,7 @@ #define DS_GPIO_Port GPIOB /* Data Structure ------------------------------------------------------------*/ -#define DS18B20_DEVICE_AMOUNT 27 +#define DS18B20_DEVICE_AMOUNT 30 /* Register ------------------------------------------------------------------*/ #define DS18B20_CMD_CONVERT 0x44 diff --git a/Core/Dallas/ow_port.c b/Core/Dallas/ow_port.c index 7e29074..a40139b 100644 --- a/Core/Dallas/ow_port.c +++ b/Core/Dallas/ow_port.c @@ -119,8 +119,8 @@ void OneWire_Delay_uw(uint32_t us) { // start = htim1.Instance->CNT; // end = start + us*tim_1us_period; - htim1.Instance->CNT = 0; + TIM1->CNT = 0; end = us*tim_1us_period; - while(htim1.Instance->CNT < end) {}; + while(TIM1->CNT < end) {}; } \ No newline at end of file diff --git a/Core/Dallas/pch_sensors.c b/Core/Dallas/pch_sensors.c index ac620ae..9337152 100644 --- a/Core/Dallas/pch_sensors.c +++ b/Core/Dallas/pch_sensors.c @@ -8,6 +8,7 @@ /* Includes ----------------------------------------------------------------*/ #include "pch_sensors.h" +#include "modbus_data.h" PCHSens_DallasBusHandle DallasBus; PCHSens_SensorActionsTypeDef action; @@ -111,8 +112,7 @@ HAL_StatusTypeDef PCHSens_InitModule(DALLAS_HandleTypeDef *hdallas, PCHSens_Modu PCHSens_AddSensor(hdallas, &module->sens1); module->sens2.Location.all = module->refLocation.all; - module->sens2.Location.param.Location = 1; - + module->sens2.Location.param.Location = 1; PCHSens_AddSensor(hdallas, &module->sens2); module->sens3.Location.all = module->refLocation.all; @@ -126,13 +126,13 @@ HAL_StatusTypeDef PCHSens_InitModule(DALLAS_HandleTypeDef *hdallas, PCHSens_Modu } -HAL_StatusTypeDef PCHSens_ReadTemperature(PCHSens_ModuleTypeDef *module) +HAL_StatusTypeDef PCHSens_ModuleHandleAction(PCHSens_ModuleTypeDef* module) { HAL_StatusTypeDef result; if(module == NULL) return HAL_ERROR; - + result = PCHSens_SensorHandleActions(module->hdallas, &module->sens1); result = PCHSens_SensorHandleActions(module->hdallas, &module->sens2); result = PCHSens_SensorHandleActions(module->hdallas, &module->sens3); @@ -140,15 +140,25 @@ HAL_StatusTypeDef PCHSens_ReadTemperature(PCHSens_ModuleTypeDef *module) return result; } - HAL_StatusTypeDef PCHSens_Covert(PCHSens_DallasBusHandle *hbus) { return Dallas_StartConvertTAll(hbus->hdallas, DALLAS_WAIT_BUS, 0); } +HAL_StatusTypeDef PCHSens_ReadTemperature(PCHSens_SensorTypeDef* sensor) +{ + HAL_StatusTypeDef result; + + if(sensor == NULL) + return HAL_ERROR; + + result = Dallas_ReadTemperature(&sensor->sens); + PCHSens_StoreToModbus(sensor); + + return result; +} HAL_StatusTypeDef PCHSens_CheckSensor(DALLAS_HandleTypeDef *hdallas, PCHSens_SensorTypeDef* sensor) { HAL_StatusTypeDef result; - PCHSens_LocationTypeDef initlocation; unsigned unknow_sensors_flag = 0; if(sensor == NULL) @@ -158,7 +168,6 @@ HAL_StatusTypeDef PCHSens_CheckSensor(DALLAS_HandleTypeDef *hdallas, PCHSens_Sen if((sensor->sens.isLost == 1)) { - initlocation.param.Location = 0; if(Dallas_ReplaceLostedSensor(&sensor->sens) != HAL_OK) { sensor->not_found = 1; @@ -249,7 +258,7 @@ HAL_StatusTypeDef PCHSens_SensorHandleActions(DALLAS_HandleTypeDef *hdallas, PCH if(action.read != NULL) { - result = Dallas_ReadTemperature(&sensor->sens); + result = PCHSens_ReadTemperature(sensor); if(result != HAL_OK) PCHSens_CheckSensor(hdallas, sensor); } @@ -275,30 +284,30 @@ void PCHSens_FirstInit(void) DallasBus.hdallas = &hdallas1; DallasBus.hdallas->onewire = &OW; + + + PCHSens_InitModule(&hdallas1, &module1, REG_PCH_NUMB_11|REG_PCH_DIODE_NUMB_1); + PCHSens_InitModule(&hdallas1, &module2, REG_PCH_NUMB_12|REG_PCH_DIODE_NUMB_1); + PCHSens_InitModule(&hdallas1, &module3, REG_PCH_NUMB_13|REG_PCH_DIODE_NUMB_1); + PCHSens_InitModule(&hdallas1, &module4, REG_PCH_NUMB_21|REG_PCH_DIODE_NUMB_1); + PCHSens_InitModule(&hdallas1, &module5, REG_PCH_NUMB_22|REG_PCH_DIODE_NUMB_1); + PCHSens_InitModule(&hdallas1, &module6, REG_PCH_NUMB_23|REG_PCH_DIODE_NUMB_1); PCHSens_FindUnknownSensors(&DallasBus); -// PCHSens_DefineUnknownSensor(&UnknownSensors, NULL); -// Dallas_SensorInitByInd(&OW, &AllSens.outdoor, 0); -// Dallas_SensorInitByInd(&OW, &AllSens.indoor, 2); -// Dallas_SensorInitByInd(&OW, &AllSens.bathroom, 1); -// Dallas_SensorInitByInd(&OW, &AllSens.kitchen, 3); -// Dallas_SensorInitByInd(&OW, &AllSens.big_room, 4); -// Dallas_SensorInitByInd(&OW, &AllSens.small_room, 5); -// Dallas_SensorInitByInd(&OW, &AllSens.living_room, 6); -// Dallas_SensorInitByInd(&OW, &AllSens.basement, 7); -// -// uint8_t mask = DALLAS_USER_BYTE_ALL; -// Dallas_WriteUserBytes(&AllSens.outdoor, 1, NULL, mask); -// Dallas_WriteUserBytes(&AllSens.indoor, 2, NULL, mask); -// Dallas_WriteUserBytes(&AllSens.bathroom, 3, NULL, mask); -// Dallas_WriteUserBytes(&AllSens.kitchen, 4, NULL, mask); -// Dallas_WriteUserBytes(&AllSens.big_room, 5, NULL, mask); -// Dallas_WriteUserBytes(&AllSens.small_room, 6, NULL, mask); -// Dallas_WriteUserBytes(&AllSens.living_room, 7, NULL, mask); -// Dallas_WriteUserBytes(&AllSens.basement, 8, NULL, mask); +} + + +void PCHSens_StoreToModbus(PCHSens_SensorTypeDef *sensor) +{ + uint8_t pch_numb = (sensor->Location.param.PCHdig1 - 1)*3 + (sensor->Location.param.PCHdig2 - 1); + uint8_t location = (sensor->Location.param.Location); + + uint8_t mb_location = pch_numb*4 + location; + + if (mb_location < DS18B20_DEVICE_AMOUNT) + MB_DATA.InRegs.SensTemperature[mb_location] = sensor->sens.temperature*100; } - diff --git a/Core/Dallas/pch_sensors.h b/Core/Dallas/pch_sensors.h index e4e91af..e639a93 100644 --- a/Core/Dallas/pch_sensors.h +++ b/Core/Dallas/pch_sensors.h @@ -163,11 +163,13 @@ extern PCHSens_DallasBusHandle DallasBus; HAL_StatusTypeDef PCHSens_InitNewSensor(DALLAS_HandleTypeDef *hdallas, PCHSens_SensorTypeDef* sensor, uint64_t ROM); HAL_StatusTypeDef PCHSens_AddSensor(DALLAS_HandleTypeDef *hdallas, PCHSens_SensorTypeDef* sensor); HAL_StatusTypeDef PCHSens_InitModule(DALLAS_HandleTypeDef *hdallas, PCHSens_ModuleTypeDef* module, uint16_t param); -HAL_StatusTypeDef PCHSens_ReadTemperature(PCHSens_ModuleTypeDef *module); +HAL_StatusTypeDef PCHSens_ModuleHandleAction(PCHSens_ModuleTypeDef* module); +HAL_StatusTypeDef PCHSens_ReadTemperature(PCHSens_SensorTypeDef* sensor); HAL_StatusTypeDef PCHSens_Covert(PCHSens_DallasBusHandle *hbus); HAL_StatusTypeDef PCHSens_CheckSensor(DALLAS_HandleTypeDef *hdallas, PCHSens_SensorTypeDef* sensor); HAL_StatusTypeDef PCHSens_FindUnknownSensors(PCHSens_DallasBusHandle *hbus); HAL_StatusTypeDef PCHSens_DefineUnknownSensor(PCHSens_DallasBusHandle *hbus, PCHSens_SensorTypeDef *sensor); HAL_StatusTypeDef PCHSens_SensorHandleActions(DALLAS_HandleTypeDef *hdallas, PCHSens_SensorTypeDef *sensor); void PCHSens_FirstInit(void); +void PCHSens_StoreToModbus(PCHSens_SensorTypeDef *sensor); #endif // #ifndef PCH_SENSORS_H \ No newline at end of file diff --git a/Core/Inc/tim.h b/Core/Inc/tim.h index 14edb1c..f7f1418 100644 --- a/Core/Inc/tim.h +++ b/Core/Inc/tim.h @@ -39,7 +39,8 @@ extern TIM_HandleTypeDef htim14; /* USER CODE END Private defines */ -void MX_TIM1_Init(void); +void MX_TIM1_Init(void); +void MX_TIM14_Init(void); /* USER CODE BEGIN Prototypes */ diff --git a/Core/Modbus/crc_algs.c b/Core/Modbus/crc_algs.c index d5b4d48..0abdb97 100644 --- a/Core/Modbus/crc_algs.c +++ b/Core/Modbus/crc_algs.c @@ -8,10 +8,6 @@ uint32_t CRC_ref; //uint16_t CRC_ref; -// left this global for debug -uint8_t uchCRCHi = 0xFF; -uint8_t uchCRCLo = 0xFF; -unsigned uIndex; /*Table of CRC values for high order byte*/ const unsigned char auchCRCHi[]= @@ -55,8 +51,9 @@ const char auchCRCLo[] = }; uint16_t crc16(uint8_t *data, uint32_t data_size) { - uchCRCHi = 0xFF; - uchCRCLo = 0xFF; + uint8_t uchCRCHi = 0xFF; + uint8_t uchCRCLo = 0xFF; + unsigned uIndex; /* CRC Generation Function */ while( data_size--) /* pass through message buffer */ { diff --git a/Core/Modbus/modbus.c b/Core/Modbus/modbus.c index 73de147..6ba7edb 100644 --- a/Core/Modbus/modbus.c +++ b/Core/Modbus/modbus.c @@ -130,6 +130,7 @@ void MODBUS_FirstInit(void) hmodbus1.ID = MODBUS_DEVICE_ID; hmodbus1.sRS_Mode = SLAVE_ALWAYS_WAIT; hmodbus1.sRS_RX_Size_Mode = RS_RX_Size_NotConst; + hmodbus1.sRS_Timeout = 1; // INIT #ifdef INCLUDE_GENERAL_PERIPH_LIBS @@ -263,8 +264,8 @@ MB_ExceptionTypeDef MB_DefineRegistersAddress(uint16_t **pRegs, uint16_t Addr, u if(RegisterType == RegisterType_Holding) { - // Устаки для тестера - if(MB_Check_Address_For_Arr(Addr, Qnt, R_SETTINGS_ADDR, R_SETTINGS_QNT) == NO_ERRORS) + // Параметры для инициализации датчика + if(MB_Check_Address_For_Arr(Addr, Qnt, R_SENS_INIT_ADDR, R_SENS_INIT_QNT) == NO_ERRORS) { *pRegs = MB_Set_Register_Ptr(&MB_DATA.HoldRegs, Addr); // начало регистров хранения/входных } @@ -276,8 +277,13 @@ MB_ExceptionTypeDef MB_DefineRegistersAddress(uint16_t **pRegs, uint16_t Addr, u } else if(RegisterType == RegisterType_Input) { - // Измеренные параметры диода - if(MB_Check_Address_For_Arr(Addr, Qnt, R_MEASURED_ADDR, R_MEASURED_QNT) == NO_ERRORS) + // Измеренные температуры + if(MB_Check_Address_For_Arr(Addr, Qnt, R_TEMPERATURE_ADDR, R_TEMPERATURE_QNT) == NO_ERRORS) + { + *pRegs = MB_Set_Register_Ptr(&MB_DATA.InRegs, Addr); // начало регистров хранения/входных + } + // Параметры датчика + else if(MB_Check_Address_For_Arr(Addr, Qnt, R_SENS_PARAMS_ADDR, R_SENS_PARAMS_QNT) == NO_ERRORS) { *pRegs = MB_Set_Register_Ptr(&MB_DATA.InRegs, Addr); // начало регистров хранения/входных } @@ -314,11 +320,12 @@ MB_ExceptionTypeDef MB_DefineCoilsAddress(uint16_t **pCoils, uint16_t Addr, uint return ILLEGAL_DATA_VALUE; // return exception code } - // tester settings coils - if(MB_Check_Address_For_Arr(Addr, Qnt, C_SETTINGS_ADDR, C_SETTINGS_QNT) == NO_ERRORS) + // Флаги всей шины датчиков + if(MB_Check_Address_For_Arr(Addr, Qnt, C_FLAGS_ADDR, C_FLAGS_QNT) == NO_ERRORS) { *pCoils = MB_Set_Coil_Reg_Ptr(&MB_DATA.Coils, Addr); - }// tester control coils + } + // Управление датчиками else if(MB_Check_Address_For_Arr(Addr, Qnt, C_CONTROL_ADDR, C_CONTROL_QNT) == NO_ERRORS) { *pCoils = MB_Set_Coil_Reg_Ptr(&MB_DATA.Coils, Addr); diff --git a/Core/Modbus/modbus_data.h b/Core/Modbus/modbus_data.h index 22a07b2..0ba0942 100644 --- a/Core/Modbus/modbus_data.h +++ b/Core/Modbus/modbus_data.h @@ -31,15 +31,29 @@ @endverbatim * @{ */ - - + +//typedef struct +//{ +// uint16_t ROM[4]; +// uint16_t Location; +// uint16_t Resolution; +// uint16_t Losted; +//}MB_SensorResponseTypeDef; + +typedef struct +{ + uint16_t Location; + uint16_t ROM[4]; + uint16_t Resolution; + uint16_t Enable; +}MB_SensorParamsTypeDef; /** * @brief Регистры хранения */ typedef struct //MB_DataInRegsTypeDef { - uint16_t SensTemperature[DS18B20_DEVICE_AMOUNT]; - uint16_t Resolution; + uint16_t SensTemperature[DS18B20_DEVICE_AMOUNT]; + MB_SensorParamsTypeDef Response; }MB_DataInRegsTypeDef; @@ -48,27 +62,19 @@ typedef struct //MB_DataInRegsTypeDef */ typedef struct //MB_DataInRegsTypeDef { - uint16_t TimeForForward; - uint16_t TimeForReverse; - uint16_t TimeBeforeTest; - uint16_t TimeDeadtime; - uint16_t TimeBeforePeak; - - uint16_t Adc_PulseWidth; - uint16_t Adc_PulseSign; - uint16_t Adc_CalibrValue; - uint16_t Adc_ZeroValue; - uint16_t Adc_U_Calibr; + MB_SensorParamsTypeDef InitStruct; }MB_DataHoldRegsTypeDef; // DEFINES FOR INPUT REGISTERS ARRAYS -#define R_MEASURED_ADDR 0 -#define R_MEASURED_QNT 2 +#define R_TEMPERATURE_ADDR (0) +#define R_TEMPERATURE_QNT (DS18B20_DEVICE_AMOUNT) +#define R_SENS_PARAMS_ADDR (DS18B20_DEVICE_AMOUNT+1) +#define R_SENS_PARAMS_QNT (sizeof(MB_SensorParamsTypeDef)/sizeof(uint16_t)) // DEFINES FOR HOLDING REGISTERS ARRAYS -#define R_SETTINGS_ADDR 0 -#define R_SETTINGS_QNT 10 +#define R_SENS_INIT_ADDR (0) +#define R_SENS_INIT_QNT (sizeof(MB_SensorParamsTypeDef)/sizeof(uint16_t)) // DEFINES FOR REGISTERS LOCAL ADDRESSES @@ -102,31 +108,23 @@ typedef struct //MB_DataInRegsTypeDef typedef struct //MB_DataCoilsTypeDef { /* reg 1 - control */ - unsigned ForwardTest:1; - unsigned ReverseTest:1; - unsigned StartTest:1; - unsigned KeyForwardHiTest:1; - unsigned KeyForwardLoTest:1; - unsigned KeyReverseHiTest:1; - unsigned KeyReverseLoTest:1; + unsigned RunConvertions:1; + unsigned InitSensor:1; + unsigned DenitSensor:1; - unsigned reserved:9; + unsigned reserved:13; /* reg 2 - settings */ - unsigned msTimeForForward_enable:1; - unsigned msTimeForReverse_enable:1; - unsigned msTimeBeforeTest_enable:1; - unsigned msTimeDeadtime_enable:1; - unsigned msTimeBeforePeak_enable:1; - unsigned reserved2:11; + unsigned ConvertionDone:1; + unsigned LostedSensors:1; }MB_DataCoilsTypeDef; // DEFINES FOR COIL ARRAYS #define C_CONTROL_ADDR 0 -#define C_CONTROL_QNT 7 +#define C_CONTROL_QNT 3 -#define C_SETTINGS_ADDR 16 -#define C_SETTINGS_QNT 5 +#define C_FLAGS_ADDR 16 +#define C_FLAGS_QNT 5 /** MODBUS_DATA_COILS_DEFINES * @} diff --git a/Core/Src/main.c b/Core/Src/main.c index d276089..4e0832b 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -51,7 +51,7 @@ int main(void) MX_GPIO_Init(); MX_TIM1_Init(); - HAL_TIM_Base_Start(&htim1); + MX_TIM14_Init(); MX_USART1_UART_Init(); MODBUS_FirstInit(); @@ -64,14 +64,15 @@ int main(void) { GPIOA->ODR ^= GPIO_LED_2; + PCHSens_Covert(&DallasBus); - PCHSens_ReadTemperature(&module1); -// PCHSens_ReadTemperature(&module2); -// PCHSens_ReadTemperature(&module3); -// PCHSens_ReadTemperature(&module4); -// PCHSens_ReadTemperature(&module5); -// PCHSens_ReadTemperature(&module6); + PCHSens_ModuleHandleAction(&module1); + PCHSens_ModuleHandleAction(&module2); + PCHSens_ModuleHandleAction(&module3); + PCHSens_ModuleHandleAction(&module4); + PCHSens_ModuleHandleAction(&module5); + PCHSens_ModuleHandleAction(&module6); } } diff --git a/Core/Src/tim.c b/Core/Src/tim.c index 21c69fb..f0bccd8 100644 --- a/Core/Src/tim.c +++ b/Core/Src/tim.c @@ -24,52 +24,81 @@ /* USER CODE END 0 */ -TIM_HandleTypeDef htim1; +//TIM_HandleTypeDef htim1; TIM_HandleTypeDef htim14; /* TIM3 init function */ void MX_TIM1_Init(void) { + // TIM1 + __HAL_RCC_TIM1_CLK_ENABLE(); + + // (Prescaler) + TIM1->PSC = 0; + + // + TIM1->CR1 &= ~TIM_CR1_DIR; + + // (ARR - Auto-reload register) + TIM1->ARR = 0xFFFFFFFF; + + // (Clock Division) + TIM1->CR1 &= ~TIM_CR1_CKD; + + // + TIM1->CR1 &= ~TIM_CR1_ARPE; + + // + TIM1->SMCR &= ~TIM_SMCR_SMS; + + // (TRGO) + TIM1->CR2 &= ~TIM_CR2_MMS; + + // Master/Slave + TIM1->SMCR &= ~TIM_SMCR_MSM; + + // + TIM1->CR1 |= TIM_CR1_CEN; - /* USER CODE BEGIN TIM3_Init 0 */ +// /* USER CODE BEGIN TIM3_Init 0 */ - /* USER CODE END TIM3_Init 0 */ +// /* USER CODE END TIM3_Init 0 */ - TIM_ClockConfigTypeDef sClockSourceConfig = {0}; - TIM_MasterConfigTypeDef sMasterConfig = {0}; +// TIM_ClockConfigTypeDef sClockSourceConfig = {0}; +// TIM_MasterConfigTypeDef sMasterConfig = {0}; - /* USER CODE BEGIN TIM3_Init 1 */ - HAL_RCC_GetPCLK1Freq(); - /* USER CODE END TIM3_Init 1 */ - htim1.Instance = TIM1; - htim1.Init.Prescaler = 0; - htim1.Init.CounterMode = TIM_COUNTERMODE_UP; - htim1.Init.Period = 0xFFFFFFFF; - htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; - htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; - if (HAL_TIM_Base_Init(&htim1) != HAL_OK) - { - Error_Handler(); - } - sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; - if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK) - { - Error_Handler(); - } - sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; - sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; - if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK) - { - Error_Handler(); - } - /* USER CODE BEGIN TIM3_Init 2 */ +// /* USER CODE BEGIN TIM3_Init 1 */ +// HAL_RCC_GetPCLK1Freq(); +// /* USER CODE END TIM3_Init 1 */ +// htim1.Instance = TIM1; +// htim1.Init.Prescaler = 0; +// htim1.Init.CounterMode = TIM_COUNTERMODE_UP; +// htim1.Init.Period = 0xFFFFFFFF; +// htim1.Init.ClockDivision = TIM_CLOCKDIVISION_DIV1; +// htim1.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_DISABLE; +// if (HAL_TIM_Base_Init(&htim1) != HAL_OK) +// { +// Error_Handler(); +// } +// sClockSourceConfig.ClockSource = TIM_CLOCKSOURCE_INTERNAL; +// if (HAL_TIM_ConfigClockSource(&htim1, &sClockSourceConfig) != HAL_OK) +// { +// Error_Handler(); +// } +// sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; +// sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; +// if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK) +// { +// Error_Handler(); +// } +// /* USER CODE BEGIN TIM3_Init 2 */ - /* USER CODE END TIM3_Init 2 */ +// /* USER CODE END TIM3_Init 2 */ } /* TIM2 init function */ -void MX_TIM2_Init(void) +void MX_TIM14_Init(void) { /* USER CODE BEGIN TIM2_Init 0 */ diff --git a/Core/Src/usart.c b/Core/Src/usart.c index d46ae86..a517a02 100644 --- a/Core/Src/usart.c +++ b/Core/Src/usart.c @@ -92,30 +92,6 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) } } -void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) -{ - - if(uartHandle->Instance==USART1) - { - /* USER CODE BEGIN USART1_MspDeInit 0 */ - - /* USER CODE END USART1_MspDeInit 0 */ - /* Peripheral clock disable */ - __HAL_RCC_USART1_CLK_DISABLE(); - - /**USART1 GPIO Configuration - PA9 ------> USART1_TX - PA10 ------> USART1_RX - */ - HAL_GPIO_DeInit(GPIOA, GPIO_PIN_9|GPIO_PIN_10); - - /* USART1 interrupt Deinit */ - HAL_NVIC_DisableIRQ(USART1_IRQn); - /* USER CODE BEGIN USART1_MspDeInit 1 */ - - /* USER CODE END USART1_MspDeInit 1 */ - } -} /* USER CODE BEGIN 1 */ diff --git a/MDK-ARM/PY32Dallas.uvoptx b/MDK-ARM/PY32Dallas.uvoptx index 076fc84..67e1608 100644 --- a/MDK-ARM/PY32Dallas.uvoptx +++ b/MDK-ARM/PY32Dallas.uvoptx @@ -153,24 +153,7 @@ (105=-1,-1,-1,-1,0) - - - 0 - 0 - 152 - 1 -
134221440
- 0 - 0 - 0 - 0 - 0 - 1 - ..\Core\Dallas\dallas_tools.c - - \\Project\../Core/Dallas/dallas_tools.c\152 -
-
+ 0 @@ -185,7 +168,7 @@ 2 1 - \\Project\../Core/Dallas/ds18b20_driver.c\OW.RomByte[7] + module2 3 @@ -240,7 +223,12 @@ 13 1 - hmodbus1 + hmodbus1,0x0A + + + 14 + 1 + RS_Buffer,0x10 @@ -262,7 +250,12 @@ 3 2 - MB_DATA + MB_DATA,0x0A + + + 4 + 2 + hmodbus1 @@ -456,8 +449,8 @@ 0 0 0 - ..\Core\Src\py32f002b_hal_msp.c - py32f002b_hal_msp.c + ..\Core\Src\py32f002b_it.c + py32f002b_it.c 0 0 @@ -468,8 +461,8 @@ 0 0 0 - ..\Core\Src\py32f002b_it.c - py32f002b_it.c + ..\Core\Src\py32f002b_hal_msp.c + py32f002b_hal_msp.c 0 0 diff --git a/MDK-ARM/PY32Dallas.uvprojx b/MDK-ARM/PY32Dallas.uvprojx index 4444fad..350f911 100644 --- a/MDK-ARM/PY32Dallas.uvprojx +++ b/MDK-ARM/PY32Dallas.uvprojx @@ -435,16 +435,16 @@ 1 ..\Core\Src\usart.c - - py32f002b_hal_msp.c - 1 - ..\Core\Src\py32f002b_hal_msp.c - py32f002b_it.c 1 ..\Core\Src\py32f002b_it.c + + py32f002b_hal_msp.c + 1 + ..\Core\Src\py32f002b_hal_msp.c + diff --git a/ds18b20_locations.xlsx b/ds18b20_locations.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..6b591facf7656ad5269f5a47c16e1371a3a9023c GIT binary patch literal 9897 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 Tg8%>;^hXCZV+Sa01OWUWTb2To literal 0 HcmV?d00001