From b76ec4a85b81c9a74fd5a53092484b7418939417 Mon Sep 17 00:00:00 2001 From: Razvalyaev Date: Thu, 5 Feb 2026 14:21:25 +0300 Subject: [PATCH] =?UTF-8?q?=D0=97=D0=B0=D0=BF=D1=83=D1=89=D0=B5=D0=BD=20?= =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D0=B1=D0=B0=D1=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- UPP/AllLibs/Modbus | 2 +- UPP/Core/Configs/modbus_config.h | 2 - UPP/Core/Configs/modbus_data.c | 4 +- UPP/Core/Inc/stm32f4xx_it.h | 1 + UPP/Core/Src/main.c | 9 +- UPP/Core/Src/stm32f4xx_it.c | 17 +- UPP/Core/Src/usart.c | 5 + UPP/Core/UPP/upp_io.c | 11 +- UPP/Core/UPP/upp_io.h | 4 +- UPP/Core/UPP/upp_main.c | 10 +- UPP/MDK-ARM/UPP.uvoptx | 146 ++-- UPP/MDK-ARM/UPP.uvprojx | 729 ++++++++++++++---- UPP/UPP.ioc | 8 +- ...атой управления УПП.docx | Bin 54781 -> 54719 bytes 14 files changed, 704 insertions(+), 244 deletions(-) diff --git a/UPP/AllLibs/Modbus b/UPP/AllLibs/Modbus index df3f71c..f03ffd5 160000 --- a/UPP/AllLibs/Modbus +++ b/UPP/AllLibs/Modbus @@ -1 +1 @@ -Subproject commit df3f71cdff442547c8606520a5342ebfc149e527 +Subproject commit f03ffd5bfcd1a1296ae4d02dfa8902fd15fe8400 diff --git a/UPP/Core/Configs/modbus_config.h b/UPP/Core/Configs/modbus_config.h index 365f71e..806e78d 100644 --- a/UPP/Core/Configs/modbus_config.h +++ b/UPP/Core/Configs/modbus_config.h @@ -40,8 +40,6 @@ // Периферия (опционально) //#define mb_huart huart1 ///< Удобный дефайн для модбасовского uart //#define mb_htim htim3 ///< Удобный дефайн для модбасовского таймера -#define RS_EnableReceive() UPP_UART1_SetDirection(GPIO_PIN_RESET) ///< Функция изменения направления передачи на ПРИЕМ для RS-485 -#define RS_EnableTransmit() UPP_UART1_SetDirection(GPIO_PIN_RESET) ///< Функция изменения направления передачи на ПЕРЕДАЧУ для RS-485 // Модули modbus diff --git a/UPP/Core/Configs/modbus_data.c b/UPP/Core/Configs/modbus_data.c index 79a3bc5..33c0103 100644 --- a/UPP/Core/Configs/modbus_data.c +++ b/UPP/Core/Configs/modbus_data.c @@ -70,7 +70,7 @@ MB_ExceptionTypeDef MB_Check_Address_For_Arr(uint16_t Addr, uint16_t Qnt, uint16 MB_ExceptionTypeDef MB_DefineRegistersAddress(uint16_t **pRegs, uint16_t Addr, uint16_t Qnt, uint8_t RegisterType, uint8_t WriteFlag) { /* В режиме работа ничего не записываем */ - if(upp.workmode == UPP_Work) + if((upp.workmode == UPP_Work) && WriteFlag) { return ET_ILLEGAL_FUNCTION; } @@ -133,7 +133,7 @@ MB_ExceptionTypeDef MB_DefineRegistersAddress(uint16_t **pRegs, uint16_t Addr, u MB_ExceptionTypeDef MB_DefineCoilsAddress(uint16_t **pCoils, uint16_t Addr, uint16_t Qnt, uint16_t *start_shift, uint8_t WriteFlag) { /* В режиме работа ничего не записываем */ - if(upp.workmode == UPP_Work) + if((upp.workmode == UPP_Work) && WriteFlag) { return ET_ILLEGAL_FUNCTION; } diff --git a/UPP/Core/Inc/stm32f4xx_it.h b/UPP/Core/Inc/stm32f4xx_it.h index fc9910e..5f16a2f 100644 --- a/UPP/Core/Inc/stm32f4xx_it.h +++ b/UPP/Core/Inc/stm32f4xx_it.h @@ -62,6 +62,7 @@ void TIM8_BRK_TIM12_IRQHandler(void); void TIM8_UP_TIM13_IRQHandler(void); void TIM8_TRG_COM_TIM14_IRQHandler(void); void DMA2_Stream0_IRQHandler(void); +void USART6_IRQHandler(void); /* USER CODE BEGIN EFP */ /* USER CODE END EFP */ diff --git a/UPP/Core/Src/main.c b/UPP/Core/Src/main.c index d9df347..f388401 100644 --- a/UPP/Core/Src/main.c +++ b/UPP/Core/Src/main.c @@ -107,7 +107,7 @@ int main(void) MX_GPIO_Init(); MX_DMA_Init(); MX_ADC3_Init(); - MX_USART3_UART_Init(); + MX_USART3_UART_Init(); //MX_CAN1_Init(); MX_IWDG_Init(); MX_TIM1_Init(); @@ -161,14 +161,13 @@ void SystemClock_Config(void) /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI|RCC_OSCILLATORTYPE_LSI + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE |RCC_OSCILLATORTYPE_LSE; + RCC_OscInitStruct.HSEState = RCC_HSE_ON; RCC_OscInitStruct.LSEState = RCC_LSE_ON; - RCC_OscInitStruct.HSIState = RCC_HSI_ON; - RCC_OscInitStruct.HSICalibrationValue = RCC_HSICALIBRATION_DEFAULT; RCC_OscInitStruct.LSIState = RCC_LSI_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; - RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI; + RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLM = 8; RCC_OscInitStruct.PLL.PLLN = 180; RCC_OscInitStruct.PLL.PLLP = RCC_PLLP_DIV2; diff --git a/UPP/Core/Src/stm32f4xx_it.c b/UPP/Core/Src/stm32f4xx_it.c index f2780ba..3a19416 100644 --- a/UPP/Core/Src/stm32f4xx_it.c +++ b/UPP/Core/Src/stm32f4xx_it.c @@ -62,6 +62,7 @@ extern TIM_HandleTypeDef htim2; extern TIM_HandleTypeDef htim8; extern TIM_HandleTypeDef htim12; extern UART_HandleTypeDef huart3; +extern UART_HandleTypeDef huart6; extern TIM_HandleTypeDef htim14; /* USER CODE BEGIN EV */ @@ -240,7 +241,6 @@ void TIM2_IRQHandler(void) void USART3_IRQHandler(void) { /* USER CODE BEGIN USART3_IRQn 0 */ - RS_UART_Handler(&hmodbus1); return; /* USER CODE END USART3_IRQn 0 */ @@ -321,6 +321,21 @@ void DMA2_Stream0_IRQHandler(void) /* USER CODE END DMA2_Stream0_IRQn 1 */ } +/** + * @brief This function handles USART6 global interrupt. + */ +void USART6_IRQHandler(void) +{ + /* USER CODE BEGIN USART6_IRQn 0 */ + RS_UART_Handler(&hmodbus1); + return; + /* USER CODE END USART6_IRQn 0 */ + HAL_UART_IRQHandler(&huart6); + /* USER CODE BEGIN USART6_IRQn 1 */ + + /* USER CODE END USART6_IRQn 1 */ +} + /* USER CODE BEGIN 1 */ /* USER CODE END 1 */ diff --git a/UPP/Core/Src/usart.c b/UPP/Core/Src/usart.c index f739e55..8b0b1a5 100644 --- a/UPP/Core/Src/usart.c +++ b/UPP/Core/Src/usart.c @@ -137,6 +137,9 @@ void HAL_UART_MspInit(UART_HandleTypeDef* uartHandle) GPIO_InitStruct.Alternate = GPIO_AF8_USART6; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); + /* USART6 interrupt Init */ + HAL_NVIC_SetPriority(USART6_IRQn, 0, 0); + HAL_NVIC_EnableIRQ(USART6_IRQn); /* USER CODE BEGIN USART6_MspInit 1 */ /* USER CODE END USART6_MspInit 1 */ @@ -180,6 +183,8 @@ void HAL_UART_MspDeInit(UART_HandleTypeDef* uartHandle) */ HAL_GPIO_DeInit(GPIOC, SCIT1C6_Pin|SCIR2_Pin); + /* USART6 interrupt Deinit */ + HAL_NVIC_DisableIRQ(USART6_IRQn); /* USER CODE BEGIN USART6_MspDeInit 1 */ /* USER CODE END USART6_MspDeInit 1 */ diff --git a/UPP/Core/UPP/upp_io.c b/UPP/Core/UPP/upp_io.c index 41aa5ce..dc174a3 100644 --- a/UPP/Core/UPP/upp_io.c +++ b/UPP/Core/UPP/upp_io.c @@ -48,9 +48,10 @@ void UPP_IO_Init(void) GPIO_Switch_Init(&UPP_DIN.MestDist, DIN2_GPIO_Port, DIN2_Pin, 0); UPP_DIN.MestDist.Sw_FilterDelay = 100; GPIO_Switch_Init(&UPP_DIN.DIN3, DIN3_GPIO_Port, DIN3_Pin, 0); + GPIO_Switch_Init(&UPP_DIN.err_24Vdio, ERR_24VDIO_GPIO_Port, ERR_24VDIO_Pin, 1); GPIO_Switch_Init(&UPP_DIN.err_24V, ERR_24V_GPIO_Port, ERR_24V_Pin, 1); - GPIO_Switch_Init(&UPP_DIN.err_5Vsi, ERR_5VSI_GPIO_Port, ERR_5VSI_Pin, 0); + GPIO_Switch_Init(&UPP_DIN.err_5Vsi, ERR_5VSI_GPIO_Port, ERR_5VSI_Pin, 1); /* Дискретные входы платы УМ */ GPIO_Switch_Init(&UPP_DIN.err_5Vd, UM_ERR_5VD_GPIO_Port, UM_ERR_5VD_Pin, 0); @@ -83,16 +84,16 @@ void UPP_IO_Init(void) /** * @brief Выставить направление UART1 (STM USART2) */ -void UPP_UART1_SetDirection(int state) +void UPP_UART1_SetDirection(int Tx) { - HAL_GPIO_WritePin(SCIDE1_GPIO_Port, SCIDE1_Pin, state); + HAL_GPIO_WritePin(SCIDE1_GPIO_Port, SCIDE1_Pin, !Tx); } /** * @brief Выставить направление UART2 (STM USART5) */ -void UPP_UART2_SetDirection(int state) +void UPP_UART2_SetDirection(int Tx) { - HAL_GPIO_WritePin(SCIDE2_GPIO_Port, SCIDE2_Pin, state); + HAL_GPIO_WritePin(SCIDE2_GPIO_Port, SCIDE2_Pin, !Tx); } diff --git a/UPP/Core/UPP/upp_io.h b/UPP/Core/UPP/upp_io.h index 3fecb4b..169d563 100644 --- a/UPP/Core/UPP/upp_io.h +++ b/UPP/Core/UPP/upp_io.h @@ -60,7 +60,7 @@ extern UPP_DiscreteOutputs_t UPP_DO; void UPP_IO_Init(void); /* Выставить направление UART1 (STM USART2) */ -void UPP_UART1_SetDirection(int state); +void UPP_UART1_SetDirection(int Tx); /* Выставить направление UART2 (STM USART5) */ -void UPP_UART2_SetDirection(int state); +void UPP_UART2_SetDirection(int Tx); #endif //_UPP_IO_H \ No newline at end of file diff --git a/UPP/Core/UPP/upp_main.c b/UPP/Core/UPP/upp_main.c index ad318a8..1235f3c 100644 --- a/UPP/Core/UPP/upp_main.c +++ b/UPP/Core/UPP/upp_main.c @@ -35,7 +35,7 @@ int UPP_App_Init(void) upp.PUI.values = &MB_DATA.InRegs.pui; upp.call = &MB_INTERNAL.FuncCalls; - MODBUS_FirstInit(&hmodbus1, &mb_huart, &mb_htim); + MODBUS_FirstInit(&hmodbus1, &huart6, &mb_htim, UPP_UART2_SetDirection); if(HAL_TIM_Base_Start(&ustim) != HAL_OK) { @@ -307,6 +307,7 @@ void UPP_ADC_Handle(void) PowerMonitor_FastCalc(&upp.pm); + int voltage_halfwave_period_ms_mean = 1.0f/(upp.pm.measured.final.Fmean*2)*1000; for(int phase = 0; phase < 3; phase++) { // Если произошел Zero Cross @@ -320,16 +321,13 @@ void UPP_ADC_Handle(void) UPP_HalfWave_t curr_halfwave = ZC_GetHalfWave(&upp.pm.zc, phase); res = PWM_SetHalfWave(&upp.hpwm, phase, curr_halfwave); // Начинаем отсчитывать угол - int voltage_halfwave_period_ms = 1.0f/(upp.pm.measured.final.F[phase]*2)*1000; - res = Angle_Start(&upp.hangle, phase, voltage_halfwave_period_ms); - if(res != HAL_OK) - __NOP(); +// int voltage_halfwave_period_ms = 1.0f/(upp.pm.measured.final.F[phase]*2)*1000; + res = Angle_Start(&upp.hangle, phase, voltage_halfwave_period_ms_mean); } } } // ШИМим ключи - int voltage_halfwave_period_ms_mean = 1.0f/(upp.pm.measured.final.Fmean*2)*1000; res = PWM_Handle(&upp.hpwm, voltage_halfwave_period_ms_mean); upp.Timings.isr_adc_us = BenchTime_End(BT_ADC, angletim.Instance->CNT)/ANGLE_TIM2_FREQ_MHZ; diff --git a/UPP/MDK-ARM/UPP.uvoptx b/UPP/MDK-ARM/UPP.uvoptx index 1f577c5..fd32f05 100644 --- a/UPP/MDK-ARM/UPP.uvoptx +++ b/UPP/MDK-ARM/UPP.uvoptx @@ -1,4 +1,4 @@ - + 1.0 @@ -45,7 +45,7 @@ 79 66 8 - + 1 @@ -104,16 +104,16 @@ 0 0 4 - - - - - - - - - - + + + + + + + + + + Segger\JL2CM3.dll @@ -130,7 +130,7 @@ 0 ARMDBGFLAGS - + 0 @@ -140,7 +140,7 @@ 0 DLGUARM - + 0 @@ -148,7 +148,7 @@ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F427ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) - + 0 @@ -163,12 +163,12 @@ 2 1 - test_cen,0x0A + hmodbus1 3 1 - test_err,0x0A + RS_Buffer 4 @@ -180,7 +180,39 @@ 1 test_ready,0x0A + + 6 + 1 + UPP_DIN + + + 7 + 1 + test,0x0A + + + + 0 + 2 + uwTick,0x0A + + + 1 + 2 + hbt + + + 2 + 2 + retval + + + 3 + 2 + test_err + + 0 @@ -210,19 +242,25 @@ 0 0 - - + + 0 0 0 - - - - - - - - + + + + + + + + + + + System Viewer\GPIOB + 35905 + + 1 1 @@ -257,7 +295,7 @@ 79 66 8 - + 1 @@ -316,16 +354,16 @@ 0 0 4 - - - - - - - - - - + + + + + + + + + + Segger\JL2CM3.dll @@ -342,7 +380,7 @@ 0 ARMDBGFLAGS - + 0 @@ -352,7 +390,7 @@ 0 DLGUARM - + 0 @@ -360,7 +398,7 @@ UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F417ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) - + 0 @@ -437,19 +475,19 @@ 0 0 - - + + 0 0 0 - - - - - - - - + + + + + + + + System Viewer\GPIOB @@ -1184,7 +1222,7 @@ Modbus - 0 + 1 0 0 0 @@ -1752,7 +1790,7 @@ Application/MDK-ARM - 0 + 1 0 0 0 @@ -1784,7 +1822,7 @@ ::CMSIS - 0 + 1 0 0 1 diff --git a/UPP/MDK-ARM/UPP.uvprojx b/UPP/MDK-ARM/UPP.uvprojx index eef2e93..02d3e43 100644 --- a/UPP/MDK-ARM/UPP.uvprojx +++ b/UPP/MDK-ARM/UPP.uvprojx @@ -1,10 +1,7 @@ - - - + + 2.1 -
### uVision Project, (C) Keil Software
- UPP @@ -20,28 +17,28 @@ Keil.STM32F4xx_DFP.2.17.1 https://www.keil.com/pack/ IRAM(0x20000000-0x2002FFFF) IRAM2(0x10000000-0x1000FFFF) IROM(0x8000000-0x80FFFFF) CLOCK(25000000) FPU2 CPUTYPE("Cortex-M4") TZ - - - + + + 0 - - - - - - - - - - + + + + + + + + + + $$Device:STM32F427ZGTx$CMSIS\SVD\STM32F427x.svd 0 0 - - - - - + + + + + 0 0 @@ -56,15 +53,15 @@ 1 1 1 - + 1 0 0 0 0 - - + + 0 0 0 @@ -73,8 +70,8 @@ 0 0 - - + + 0 0 0 @@ -83,15 +80,15 @@ 0 1 - - + + 0 0 0 0 1 - + 0 @@ -105,8 +102,8 @@ 0 0 3 - - + + 0 @@ -139,11 +136,11 @@ 1 BIN\UL2CM3.DLL - - - - - + + + + + 0 @@ -176,7 +173,7 @@ 0 0 "Cortex-M4" - + 0 0 0 @@ -311,7 +308,7 @@ 0x10000 - + 1 @@ -338,9 +335,9 @@ 0 0 - + USE_HAL_DRIVER,STM32F427xx, ARM_MATH_CM4 - + ../Core/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F4xx/Include;../Drivers/CMSIS/Include;../AllLibs/ExtMemory/Inc;../AllLibs/Modbus/Inc;../AllLibs/MyLibs/MyLibs/Inc;../AllLibs/MyLibs/RTT;../AllLibs/PeriphGeneral/Inc;../Core/Configs;../Core/PowerMonitor;../Core/Thyristors;../Core/UPP @@ -356,10 +353,10 @@ 0 1 - - - - + + + + @@ -369,15 +366,15 @@ 0 1 0 - - - - - - - - - + + + + + + + + + @@ -454,6 +451,57 @@ angle_control.c 1 ..\Core\UPP\angle_control.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 5 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + angle_control.h @@ -504,6 +552,57 @@ pwm_thyristors.c 1 ..\Core\UPP\pwm_thyristors.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 5 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + pwm_thyristors.h @@ -519,6 +618,57 @@ power_monitor.c 1 ..\Core\PowerMonitor\power_monitor.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 5 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 1 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + power_monitor.h @@ -529,6 +679,57 @@ zero_cross.c 1 ..\Core\PowerMonitor\zero_cross.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 5 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + zero_cross.h @@ -539,6 +740,57 @@ adc_tools.c 1 ..\Core\PowerMonitor\adc_tools.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 5 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + adc_tools.h @@ -549,6 +801,57 @@ phases_transform.c 1 ..\Core\PowerMonitor\phases_transform.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 5 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + phases_transform.h @@ -559,6 +862,57 @@ power_protect.c 1 ..\Core\PowerMonitor\power_protect.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 5 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + power_protect.h @@ -679,6 +1033,57 @@ filters.c 1 ..\AllLibs\MyLibs\MyLibs\Src\filters.c + + + 2 + 0 + 0 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + 11 + + + 1 + + + + 2 + 5 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 2 + 0 + 2 + 2 + 2 + 2 + 2 + 0 + 0 + 2 + 2 + 2 + 2 + 2 + + + + + + + + + filters.h @@ -952,8 +1357,8 @@ 2 2 11 - - + + 1 @@ -969,10 +1374,10 @@ 2 0 - - - - + + + + @@ -1007,28 +1412,28 @@ Keil.STM32F4xx_DFP.2.17.1 https://www.keil.com/pack/ IRAM(0x20000000,0x00020000) IRAM2(0x10000000,0x00010000) IROM(0x08000000,0x00100000) CPUTYPE("Cortex-M4") FPU2 CLOCK(12000000) ELITTLE - - + + UL2CM3(-S0 -C0 -P0 -FD20000000 -FC1000 -FN1 -FF0STM32F4xx_1024 -FS08000000 -FL0100000 -FP0($$Device:STM32F417ZGTx$CMSIS\Flash\STM32F4xx_1024.FLM)) 0 $$Device:STM32F417ZGTx$Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f4xx.h - - - - - - - - - + + + + + + + + + $$Device:STM32F417ZGTx$CMSIS\SVD\STM32F41x.svd 0 0 - - - - - + + + + + 0 0 @@ -1043,15 +1448,15 @@ 1 1 1 - + 1 0 0 0 0 - - + + 0 0 0 @@ -1060,8 +1465,8 @@ 0 0 - - + + 0 0 0 @@ -1070,15 +1475,15 @@ 0 0 - - + + 0 0 0 0 1 - + 0 @@ -1092,8 +1497,8 @@ 0 0 3 - - + + 0 @@ -1127,10 +1532,10 @@ 1 BIN\UL2CM3.DLL "" () - - - - + + + + 0 @@ -1163,7 +1568,7 @@ 0 0 "Cortex-M4" - + 0 0 0 @@ -1298,7 +1703,7 @@ 0x10000 - + 1 @@ -1325,9 +1730,9 @@ 0 0 - + USE_HAL_DRIVER,STM32F417xx, ARM_MATH_CM4 - + ../Core/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc;../Drivers/STM32F4xx_HAL_Driver/Inc/Legacy;../Drivers/CMSIS/Device/ST/STM32F4xx/Include;../Drivers/CMSIS/Include;../AllLibs/ExtMemory/Inc;../AllLibs/Modbus/Inc;../AllLibs/MyLibs/MyLibs/Inc;../AllLibs/MyLibs/RTT;../AllLibs/PeriphGeneral/Inc;../Core/Configs;../Core/PowerMonitor;../Core/Thyristors;../Core/UPP @@ -1343,10 +1748,10 @@ 0 1 - - - - + + + + @@ -1356,15 +1761,15 @@ 0 1 0 - - - - - - - - - + + + + + + + + + @@ -1519,8 +1924,8 @@ 2 2 11 - - + + 1 @@ -1549,10 +1954,10 @@ 2 2 - - - - + + + + @@ -1580,8 +1985,8 @@ 2 2 11 - - + + 1 @@ -1610,10 +2015,10 @@ 2 2 - - - - + + + + @@ -1641,8 +2046,8 @@ 2 2 11 - - + + 1 @@ -1671,10 +2076,10 @@ 2 2 - - - - + + + + @@ -1702,8 +2107,8 @@ 2 2 11 - - + + 1 @@ -1732,10 +2137,10 @@ 2 2 - - - - + + + + @@ -1763,8 +2168,8 @@ 2 2 11 - - + + 1 @@ -1793,10 +2198,10 @@ 2 2 - - - - + + + + @@ -1934,8 +2339,8 @@ 2 2 11 - - + + 1 @@ -1964,10 +2369,10 @@ 2 2 - - - - + + + + @@ -2250,8 +2655,8 @@ 2 2 11 - - + + 1 @@ -2267,10 +2672,10 @@ 2 0 - - - - + + + + @@ -2287,34 +2692,32 @@ - - + - + - + - + - - + + - + - - + + - + - @@ -2323,5 +2726,5 @@ -
+ diff --git a/UPP/UPP.ioc b/UPP/UPP.ioc index f4e67db..c4e63db 100644 --- a/UPP/UPP.ioc +++ b/UPP/UPP.ioc @@ -161,7 +161,7 @@ NVIC.NonMaskableInt_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.PendSV_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false NVIC.PriorityGroup=NVIC_PRIORITYGROUP_4 NVIC.SVCall_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false -NVIC.SysTick_IRQn=true\:15\:0\:false\:false\:true\:false\:true\:false +NVIC.SysTick_IRQn=true\:15\:0\:true\:false\:true\:false\:true\:false NVIC.TIM1_UP_TIM10_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.TIM2_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.TIM8_BRK_TIM12_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true @@ -170,6 +170,7 @@ NVIC.TIM8_UP_TIM13_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.TimeBase=TIM8_TRG_COM_TIM14_IRQn NVIC.TimeBaseIP=TIM14 NVIC.USART3_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true +NVIC.USART6_IRQn=true\:0\:0\:false\:false\:true\:true\:true\:true NVIC.UsageFault_IRQn=true\:0\:0\:false\:false\:true\:false\:false\:false PA10.GPIOParameters=GPIO_Label PA10.GPIO_Label=PWM3 @@ -408,7 +409,7 @@ ProjectManager.ToolChainLocation= ProjectManager.UAScriptAfterPath= ProjectManager.UAScriptBeforePath= ProjectManager.UnderRoot=false -ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_ADC3_Init-ADC3-false-HAL-true,5-MX_USART3_UART_Init-USART3-false-HAL-true,6-MX_CAN1_Init-CAN1-false-HAL-true,7-MX_IWDG_Init-IWDG-false-HAL-true,8-MX_RTC_Init-RTC-true-HAL-true,9-MX_TIM1_Init-TIM1-false-HAL-true,10-MX_TIM3_Init-TIM3-false-HAL-true,11-MX_USART6_UART_Init-USART6-false-HAL-true,12-MX_SPI3_Init-SPI3-false-HAL-true,13-MX_TIM11_Init-TIM11-false-HAL-true,14-MX_TIM12_Init-TIM12-false-HAL-true,15-MX_TIM8_Init-TIM8-false-HAL-true,16-MX_TIM5_Init-TIM5-false-HAL-true,17-MX_TIM2_Init-TIM2-false-HAL-true +ProjectManager.functionlistsort=1-SystemClock_Config-RCC-false-HAL-false,2-MX_GPIO_Init-GPIO-false-HAL-true,3-MX_DMA_Init-DMA-false-HAL-true,4-MX_ADC3_Init-ADC3-false-HAL-true,5-MX_USART3_UART_Init-USART3-false-HAL-true,6-MX_CAN1_Init-CAN1-false-HAL-true,7-MX_IWDG_Init-IWDG-false-HAL-true,8-MX_RTC_Init-RTC-true-HAL-true,9-MX_TIM1_Init-TIM1-false-HAL-true,10-MX_TIM3_Init-TIM3-false-HAL-true,11-MX_USART6_UART_Init-USART6-false-HAL-true,12-MX_SPI3_Init-SPI3-false-HAL-true,13-MX_TIM11_Init-TIM11-false-HAL-true,14-MX_TIM12_Init-TIM12-false-HAL-true,15-MX_TIM8_Init-TIM8-false-HAL-true,16-MX_TIM5_Init-TIM5-false-HAL-true,17-MX_TIM2_Init-TIM2-false-HAL-true,18-MX_TIM6_Init-TIM6-false-HAL-true RCC.48MHZClocksFreq_Value=90000000 RCC.AHBFreq_Value=180000000 RCC.APB1CLKDivider=RCC_HCLK_DIV4 @@ -425,13 +426,14 @@ RCC.HCLKFreq_Value=180000000 RCC.HSE_VALUE=16000000 RCC.HSI_VALUE=16000000 RCC.I2SClocksFreq_Value=192000000 -RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQCLKFreq_Value,RCC_RTC_Clock_Source,RCC_RTC_Clock_SourceVirtual,RTCFreq_Value,RTCHSEDivFreq_Value,SAI_AClocksFreq_Value,SAI_BClocksFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAIOutputFreq_Value,VCOSAIOutputFreq_ValueQ,VcooutputI2S,VcooutputI2SQ +RCC.IPParameters=48MHZClocksFreq_Value,AHBFreq_Value,APB1CLKDivider,APB1Freq_Value,APB1TimFreq_Value,APB2CLKDivider,APB2Freq_Value,APB2TimFreq_Value,CortexFreq_Value,EthernetFreq_Value,FCLKCortexFreq_Value,FamilyName,HCLKFreq_Value,HSE_VALUE,HSI_VALUE,I2SClocksFreq_Value,LSI_VALUE,MCO2PinFreq_Value,PLLCLKFreq_Value,PLLM,PLLN,PLLQCLKFreq_Value,PLLSourceVirtual,RCC_RTC_Clock_Source,RCC_RTC_Clock_SourceVirtual,RTCFreq_Value,RTCHSEDivFreq_Value,SAI_AClocksFreq_Value,SAI_BClocksFreq_Value,SYSCLKFreq_VALUE,SYSCLKSource,VCOI2SOutputFreq_Value,VCOInputFreq_Value,VCOOutputFreq_Value,VCOSAIOutputFreq_Value,VCOSAIOutputFreq_ValueQ,VcooutputI2S,VcooutputI2SQ RCC.LSI_VALUE=32000 RCC.MCO2PinFreq_Value=180000000 RCC.PLLCLKFreq_Value=180000000 RCC.PLLM=8 RCC.PLLN=180 RCC.PLLQCLKFreq_Value=90000000 +RCC.PLLSourceVirtual=RCC_PLLSOURCE_HSE RCC.RCC_RTC_Clock_Source=RCC_RTCCLKSOURCE_LSE RCC.RCC_RTC_Clock_SourceVirtual=RCC_RTCCLKSOURCE_LSE RCC.RTCFreq_Value=32768 diff --git a/Информация для программиста (УПП СП СЭД)/Описание работы с платой управления УПП.docx b/Информация для программиста (УПП СП СЭД)/Описание работы с платой управления УПП.docx index e8a97e21615cdd7277afad6ea05b8a5f37fdc28d..5dd9ec2d5319e2b3f41c767759dfc46e3a1ac1c7 100644 GIT binary patch delta 23533 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 delta 23583 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