//////////////////////////////////////////////////////////////////////////////// /// @file tim3_pwm_output.c /// @author AE TEAM /// @brief PWM output. //////////////////////////////////////////////////////////////////////////////// /// @attention /// /// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE /// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE /// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR /// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH /// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN /// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS. /// ///

© COPYRIGHT MINDMOTION

//////////////////////////////////////////////////////////////////////////////// // Define to prevent recursive inclusion #define _TIM3_PWM_OUTPUT_C_ // Files includes #include "tim3_pwm_output.h" #include "public.h" //////////////////////////////////////////////////////////////////////////////// /// @brief TIM3 Pin Config /// @param None /// @retval None. //////////////////////////////////////////////////////////////////////////////// void TIM3_GPIO_Init(void) { } void TIM3_time_Init(u16 arr, u16 psc) { NVIC_InitTypeDef NVIC_StructInit; TIM_TimeBaseInitTypeDef TIM_TimeBaseStruct; TIM_OCInitTypeDef TIM_OCInitStruct; RCC_APB1PeriphClockCmd(RCC_APB1ENR_TIM3, ENABLE); TIM_TimeBaseStructInit(&TIM_TimeBaseStruct); TIM_TimeBaseStruct.TIM_Period = arr; TIM_TimeBaseStruct.TIM_Prescaler = psc; //Setting Clock Segmentation TIM_TimeBaseStruct.TIM_ClockDivision = TIM_CKD_DIV1; TIM_TimeBaseStruct.TIM_RepetitionCounter = 0; ///TIM Upward Counting Mode TIM_TimeBaseStruct.TIM_CounterMode = TIM_CounterMode_Up; TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStruct); //使能TIM3 NVIC中断优先级通道 NVIC_StructInit.NVIC_IRQChannel = TIM3_IRQn; //配置TIM3 NVIC中断优先级 NVIC_StructInit.NVIC_IRQChannelPriority = 2; //使能NVIC中断优先级 NVIC_StructInit.NVIC_IRQChannelCmd = ENABLE; //根据配置的中断优先级参数初始化TIM3中断优先级 NVIC_Init(&NVIC_StructInit); TIM_ClearFlag(TIM3, TIM_FLAG_Update); TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); TIM_Cmd(TIM3, ENABLE); } void TIM3_IRQHandler(void) { if(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) { TIM_ClearITPendingBit(TIM3, TIM_IT_Update); } } /// @} /// @}