|
- #include "pwm.h"
- void TIM5_PWM_Init(u32 arr,u32 psc)
- {
- TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
- TIM_OCInitTypeDef TIM_OCInitStructure;
- GPIO_InitTypeDef GPIO_InitStructure;
-
-
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE);//使能TIM5时钟
- RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//使能PA时钟
-
-
- GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0;
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
- GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
- //GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;
- GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
- GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;
- GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化GPIOA
-
- GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_TIM5);//复用为TIM5的CH1
-
- TIM_TimeBaseStructure.TIM_Period=arr;
- TIM_TimeBaseStructure.TIM_Prescaler=psc;
- TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
- TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
- TIM_TimeBaseInit(TIM5,&TIM_TimeBaseStructure);//初始化TIM5
-
- TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
- TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCPolarity_High;
- TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
- //TIM_OCInitStructure.TIM_Pulse=150;
- TIM_OC1Init(TIM5,&TIM_OCInitStructure);//设置TIM5——CH1为输出
-
- TIM_Cmd(TIM5, ENABLE); //使能TIM5
- }
- void TIM2_PWM_Init(u32 arr,u32 psc)
- {
- TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
- TIM_OCInitTypeDef TIM_OCInitStructure;
- GPIO_InitTypeDef GPIO_InitStructure;
-
-
- RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2,ENABLE);//使能TIM5时钟
- RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);//使能PA时钟
-
-
- GPIO_InitStructure.GPIO_Pin=GPIO_Pin_1;
- GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
- GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
- //GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;
- GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
- GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;
- GPIO_Init(GPIOA,&GPIO_InitStructure);//初始化GPIOA
-
- GPIO_PinAFConfig(GPIOA,GPIO_PinSource1,GPIO_AF_TIM2);//复用为TIM5的CH1
-
- TIM_TimeBaseStructure.TIM_Period=arr;
- TIM_TimeBaseStructure.TIM_Prescaler=psc;
- TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
- TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
- TIM_TimeBaseInit(TIM2,&TIM_TimeBaseStructure);//初始化TIM5
-
- TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
- TIM_OCInitStructure.TIM_OCNPolarity=TIM_OCPolarity_High;
- TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
- //TIM_OCInitStructure.TIM_Pulse=150;
- TIM_OC2Init(TIM2,&TIM_OCInitStructure);//设置TIM5——CH1为输出
-
- TIM_Cmd(TIM2, ENABLE); //使能TIM5
- }
复制代码
|
|