diff --git a/Core/Inc/stm32f4xx_it.h b/Core/Inc/stm32f4xx_it.h index 631210e..c6dcffa 100644 --- a/Core/Inc/stm32f4xx_it.h +++ b/Core/Inc/stm32f4xx_it.h @@ -56,6 +56,7 @@ void SysTick_Handler(void); void EXTI0_IRQHandler(void); void DMA1_Stream5_IRQHandler(void); void TIM2_IRQHandler(void); +void TIM7_IRQHandler(void); void OTG_FS_IRQHandler(void); /* USER CODE BEGIN EFP */ diff --git a/Core/Inc/tim.h b/Core/Inc/tim.h index be40ddf..158bc7b 100644 --- a/Core/Inc/tim.h +++ b/Core/Inc/tim.h @@ -36,12 +36,15 @@ extern TIM_HandleTypeDef htim2; extern TIM_HandleTypeDef htim6; +extern TIM_HandleTypeDef htim7; + /* USER CODE BEGIN Private defines */ /* USER CODE END Private defines */ void MX_TIM2_Init(void); void MX_TIM6_Init(void); +void MX_TIM7_Init(void); /* USER CODE BEGIN Prototypes */ diff --git a/Core/Src/dac.c b/Core/Src/dac.c index e64ad2f..ede3e65 100644 --- a/Core/Src/dac.c +++ b/Core/Src/dac.c @@ -52,7 +52,6 @@ void MX_DAC_Init(void) /** DAC channel OUT1 config */ sConfig.DAC_Trigger = DAC_TRIGGER_T6_TRGO; -// sConfig.DAC_Trigger = DAC_TRIGGER_NONE; sConfig.DAC_OutputBuffer = DAC_OUTPUTBUFFER_ENABLE; if (HAL_DAC_ConfigChannel(&hdac, &sConfig, DAC_CHANNEL_1) != HAL_OK) { diff --git a/Core/Src/main.c b/Core/Src/main.c index 3c2f031..e97fee1 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -95,6 +95,7 @@ int main(void) MX_DAC_Init(); MX_TIM2_Init(); MX_TIM6_Init(); + MX_TIM7_Init(); /* USER CODE BEGIN 2 */ /* USER CODE END 2 */ diff --git a/Core/Src/stm32f4xx_it.c b/Core/Src/stm32f4xx_it.c index d85a3c9..ebd0a25 100644 --- a/Core/Src/stm32f4xx_it.c +++ b/Core/Src/stm32f4xx_it.c @@ -60,6 +60,7 @@ extern PCD_HandleTypeDef hpcd_USB_OTG_FS; extern DMA_HandleTypeDef hdma_dac1; extern TIM_HandleTypeDef htim2; +extern TIM_HandleTypeDef htim7; /* USER CODE BEGIN EV */ /* USER CODE END EV */ @@ -226,6 +227,20 @@ void TIM2_IRQHandler(void) /* USER CODE END TIM2_IRQn 1 */ } +/** + * @brief This function handles TIM7 global interrupt. + */ +void TIM7_IRQHandler(void) +{ + /* USER CODE BEGIN TIM7_IRQn 0 */ + + /* USER CODE END TIM7_IRQn 0 */ + HAL_TIM_IRQHandler(&htim7); + /* USER CODE BEGIN TIM7_IRQn 1 */ + + /* USER CODE END TIM7_IRQn 1 */ +} + /** * @brief This function handles USB On The Go FS global interrupt. */ diff --git a/Core/Src/tim.c b/Core/Src/tim.c index 3848616..ef8990f 100644 --- a/Core/Src/tim.c +++ b/Core/Src/tim.c @@ -26,11 +26,12 @@ TIM_HandleTypeDef htim2; TIM_HandleTypeDef htim6; - +TIM_HandleTypeDef htim7; /* TIM2 init function */ void MX_TIM2_Init(void) { + /* USER CODE BEGIN TIM2_Init 0 */ /* USER CODE END TIM2_Init 0 */ @@ -99,6 +100,39 @@ void MX_TIM6_Init(void) /* USER CODE END TIM6_Init 2 */ +} +/* TIM7 init function */ +void MX_TIM7_Init(void) +{ + + /* USER CODE BEGIN TIM7_Init 0 */ + + /* USER CODE END TIM7_Init 0 */ + + TIM_MasterConfigTypeDef sMasterConfig = {0}; + + /* USER CODE BEGIN TIM7_Init 1 */ + + /* USER CODE END TIM7_Init 1 */ + htim7.Instance = TIM7; + htim7.Init.Prescaler = 0; + htim7.Init.CounterMode = TIM_COUNTERMODE_UP; + htim7.Init.Period = 65535; + htim7.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE; + if (HAL_TIM_Base_Init(&htim7) != HAL_OK) + { + Error_Handler(); + } + sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET; + sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE; + if (HAL_TIMEx_MasterConfigSynchronization(&htim7, &sMasterConfig) != HAL_OK) + { + Error_Handler(); + } + /* USER CODE BEGIN TIM7_Init 2 */ + + /* USER CODE END TIM7_Init 2 */ + } void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) @@ -130,6 +164,21 @@ void HAL_TIM_Base_MspInit(TIM_HandleTypeDef* tim_baseHandle) /* USER CODE END TIM6_MspInit 1 */ } + else if(tim_baseHandle->Instance==TIM7) + { + /* USER CODE BEGIN TIM7_MspInit 0 */ + + /* USER CODE END TIM7_MspInit 0 */ + /* TIM7 clock enable */ + __HAL_RCC_TIM7_CLK_ENABLE(); + + /* TIM7 interrupt Init */ + HAL_NVIC_SetPriority(TIM7_IRQn, 5, 0); + HAL_NVIC_EnableIRQ(TIM7_IRQn); + /* USER CODE BEGIN TIM7_MspInit 1 */ + + /* USER CODE END TIM7_MspInit 1 */ + } } void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) @@ -160,6 +209,20 @@ void HAL_TIM_Base_MspDeInit(TIM_HandleTypeDef* tim_baseHandle) /* USER CODE END TIM6_MspDeInit 1 */ } + else if(tim_baseHandle->Instance==TIM7) + { + /* USER CODE BEGIN TIM7_MspDeInit 0 */ + + /* USER CODE END TIM7_MspDeInit 0 */ + /* Peripheral clock disable */ + __HAL_RCC_TIM7_CLK_DISABLE(); + + /* TIM7 interrupt Deinit */ + HAL_NVIC_DisableIRQ(TIM7_IRQn); + /* USER CODE BEGIN TIM7_MspDeInit 1 */ + + /* USER CODE END TIM7_MspDeInit 1 */ + } } /* USER CODE BEGIN 1 */