以下是TIM1的初始化 在主函数里面没有任何其他函数 只有这个初始化函数
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
TIM_OCInitTypeDef TIM_OCInitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOA, ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; //TIM_CH2 |GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP ;
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource8,GPIO_AF_2);//初始化GPIO //功能复用2
TIM_DeInit(TIM1);
TIM_TimeBaseStructure.TIM_Prescaler =1-1;//(psc - 1);// //时钟预分频数
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//TIM_CounterMode_Down;// //向上计数模式
TIM_TimeBaseStructure.TIM_Period = 2-1; // 自动重装载寄存器周期的值(计数值)
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_RepetitionCounter = 0; //////指定重复计数值 时间计数到0时候 更新时间时的起始数值 //输出4个脉冲
TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
/* Channel 1, 2, 3 and 4 Configuration in PWM mode */
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;
TIM_OCInitStructure.TIM_Pulse = 0; ///输出的占空比
TIM_OCInitStructure.TIM_OCPolarity =TIM_OCPolarity_Low; //TIM_OCPolarity_High; /// 设置输出极性
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;////使能该通道输出
TIM_OC1Init(TIM1, &TIM_OCInitStructure); ///pb4 TIM3 ///TIM1 pa8
TIM_SetCompare1(TIM1, 1);
// TIM_ClearFlag(TIM1, TIM_FLAG_Update); // 清除溢出中断标志
// TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE);
TIM_Cmd(TIM1, ENABLE);/////启动TIM1计数器
TIM_CtrlPWMOutputs(TIM1,ENABLE); ////TIM1主输出使能
|