From 1d13379f9d120e09c193ef854abc0fab2cf8765a Mon Sep 17 00:00:00 2001 From: Vladislav Date: Mon, 31 Mar 2025 18:24:35 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B2=D0=BA=D0=BB=D1=8E=D1=87=D0=B8=D0=BB=20IW?= =?UTF-8?q?DG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Core/Inc/stm32f4xx_hal_conf.h | 2 +- Core/Src/main.c | 35 ++++++++++++++++++++++++++++- f411-pulse-recorder.ioc | 42 ++++++++++++++++++++--------------- 3 files changed, 59 insertions(+), 20 deletions(-) diff --git a/Core/Inc/stm32f4xx_hal_conf.h b/Core/Inc/stm32f4xx_hal_conf.h index e13e281..a263c5e 100644 --- a/Core/Inc/stm32f4xx_hal_conf.h +++ b/Core/Inc/stm32f4xx_hal_conf.h @@ -55,7 +55,7 @@ /* #define HAL_HASH_MODULE_ENABLED */ /* #define HAL_I2C_MODULE_ENABLED */ /* #define HAL_I2S_MODULE_ENABLED */ -/* #define HAL_IWDG_MODULE_ENABLED */ +#define HAL_IWDG_MODULE_ENABLED /* #define HAL_LTDC_MODULE_ENABLED */ /* #define HAL_RNG_MODULE_ENABLED */ /* #define HAL_RTC_MODULE_ENABLED */ diff --git a/Core/Src/main.c b/Core/Src/main.c index eecaf0c..9c69fb3 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -41,6 +41,8 @@ /* USER CODE END PM */ /* Private variables ---------------------------------------------------------*/ +IWDG_HandleTypeDef hiwdg; + TIM_HandleTypeDef htim2; TIM_HandleTypeDef htim5; TIM_HandleTypeDef htim11; @@ -58,6 +60,7 @@ static void MX_DMA_Init(void); static void MX_TIM2_Init(void); static void MX_TIM5_Init(void); static void MX_TIM11_Init(void); +static void MX_IWDG_Init(void); /* USER CODE BEGIN PFP */ /* USER CODE END PFP */ @@ -100,6 +103,7 @@ int main(void) MX_TIM5_Init(); MX_USB_DEVICE_Init(); MX_TIM11_Init(); + MX_IWDG_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ @@ -138,8 +142,9 @@ void SystemClock_Config(void) /** Initializes the RCC Oscillators according to the specified parameters * in the RCC_OscInitTypeDef structure. */ - RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE; + RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_LSI|RCC_OSCILLATORTYPE_HSE; RCC_OscInitStruct.HSEState = RCC_HSE_ON; + RCC_OscInitStruct.LSIState = RCC_LSI_ON; RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON; RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSE; RCC_OscInitStruct.PLL.PLLM = 25; @@ -170,6 +175,34 @@ void SystemClock_Config(void) HAL_RCC_EnableCSS(); } +/** + * @brief IWDG Initialization Function + * @param None + * @retval None + */ +static void MX_IWDG_Init(void) +{ + + /* USER CODE BEGIN IWDG_Init 0 */ + + /* USER CODE END IWDG_Init 0 */ + + /* USER CODE BEGIN IWDG_Init 1 */ + + /* USER CODE END IWDG_Init 1 */ + hiwdg.Instance = IWDG; + hiwdg.Init.Prescaler = IWDG_PRESCALER_128; + hiwdg.Init.Reload = 4095; + if (HAL_IWDG_Init(&hiwdg) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN IWDG_Init 2 */ + + /* USER CODE END IWDG_Init 2 */ + +} + /** * @brief TIM2 Initialization Function * @param None diff --git a/f411-pulse-recorder.ioc b/f411-pulse-recorder.ioc index af7b3cd..d86dcb3 100644 --- a/f411-pulse-recorder.ioc +++ b/f411-pulse-recorder.ioc @@ -27,32 +27,36 @@ Dma.TIM5_CH1.1.Priority=DMA_PRIORITY_LOW Dma.TIM5_CH1.1.RequestParameters=Instance,Direction,PeriphInc,MemInc,PeriphDataAlignment,MemDataAlignment,Mode,Priority,FIFOMode File.Version=6 GPIO.groupedBy=Expand Peripherals +IWDG.IPParameters=Prescaler +IWDG.Prescaler=IWDG_PRESCALER_128 KeepUserPlacement=false Mcu.CPN=STM32F411CEU6TR Mcu.Family=STM32F4 Mcu.IP0=DMA -Mcu.IP1=NVIC -Mcu.IP2=RCC -Mcu.IP3=SYS -Mcu.IP4=TIM2 -Mcu.IP5=TIM5 -Mcu.IP6=TIM11 -Mcu.IP7=USB_DEVICE -Mcu.IP8=USB_OTG_FS -Mcu.IPNb=9 +Mcu.IP1=IWDG +Mcu.IP2=NVIC +Mcu.IP3=RCC +Mcu.IP4=SYS +Mcu.IP5=TIM2 +Mcu.IP6=TIM5 +Mcu.IP7=TIM11 +Mcu.IP8=USB_DEVICE +Mcu.IP9=USB_OTG_FS +Mcu.IPNb=10 Mcu.Name=STM32F411C(C-E)Ux Mcu.Package=UFQFPN48 Mcu.Pin0=PC13-ANTI_TAMP Mcu.Pin1=PC14-OSC32_IN Mcu.Pin10=PA14 -Mcu.Pin11=VP_SYS_VS_Systick -Mcu.Pin12=VP_TIM2_VS_ClockSourceINT -Mcu.Pin13=VP_TIM2_VS_indirect_ch1 -Mcu.Pin14=VP_TIM5_VS_ClockSourceINT -Mcu.Pin15=VP_TIM5_VS_indirect_ch1 -Mcu.Pin16=VP_TIM11_VS_ClockSourceINT -Mcu.Pin17=VP_TIM11_VS_OPM -Mcu.Pin18=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS +Mcu.Pin11=VP_IWDG_VS_IWDG +Mcu.Pin12=VP_SYS_VS_Systick +Mcu.Pin13=VP_TIM2_VS_ClockSourceINT +Mcu.Pin14=VP_TIM2_VS_indirect_ch1 +Mcu.Pin15=VP_TIM5_VS_ClockSourceINT +Mcu.Pin16=VP_TIM5_VS_indirect_ch1 +Mcu.Pin17=VP_TIM11_VS_ClockSourceINT +Mcu.Pin18=VP_TIM11_VS_OPM +Mcu.Pin19=VP_USB_DEVICE_VS_USB_DEVICE_CDC_FS Mcu.Pin2=PC15-OSC32_OUT Mcu.Pin3=PH0 - OSC_IN Mcu.Pin4=PH1 - OSC_OUT @@ -61,7 +65,7 @@ Mcu.Pin6=PA5 Mcu.Pin7=PA11 Mcu.Pin8=PA12 Mcu.Pin9=PA13 -Mcu.PinsNb=19 +Mcu.PinsNb=20 Mcu.ThirdPartyNb=0 Mcu.UserConstants= Mcu.UserName=STM32F411CEUx @@ -190,6 +194,8 @@ USB_DEVICE.VirtualMode=Cdc USB_DEVICE.VirtualModeFS=Cdc_FS USB_OTG_FS.IPParameters=VirtualMode USB_OTG_FS.VirtualMode=Device_Only +VP_IWDG_VS_IWDG.Mode=IWDG_Activate +VP_IWDG_VS_IWDG.Signal=IWDG_VS_IWDG VP_SYS_VS_Systick.Mode=SysTick VP_SYS_VS_Systick.Signal=SYS_VS_Systick VP_TIM11_VS_ClockSourceINT.Mode=Enable_Timer