想用stm32驱动一个电调,但是一直初始化不了。大神们帮我看一下是哪里错了
void TIM_Configuration(void)
{
/* 定义 TIM_TimeBase 初始化结构体 TIM_TimeBaseStructure */
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
/* 定义 TIM_OCInit 初始化结构体 TIM_OCInitStructure */
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_TimeBaseStructure.TIM_Period =1999;
TIM_TimeBaseStructure.TIM_Prescaler =71;
TIM_TimeBaseStructure.TIM_ClockDivision =TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM4 , &TIM_TimeBaseStructure);
/* 设置 OC1,OC2,OC3,OC4 通道
* 工作模式为 PWM 输出模式
* 使能比较匹配输出极性
* 时钟分割0
* 向上计数模式
*
* 设置各匹配值分别为 CCR1_Val, CCR1_Val, CCR1_Val, CCR1_Val
* 得到的占空比分别为 50%, 37.5%, 25%, 12.5%
*/
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
TIM_OCInitStructure.TIM_Pulse = B_m1;
TIM_OC1Init(TIM4, &TIM_OCInitStructure);
TIM_OCInitStructure.TIM_Pulse = B_m2;
TIM_OC2Init(TIM4, &TIM_OCInitStructure);
TIM_OCInitStructure.TIM_Pulse = B_m3;
TIM_OC3Init(TIM4, &TIM_OCInitStructure);
TIM_OCInitStructure.TIM_Pulse = B_m4;
TIM_OC4Init(TIM4, &TIM_OCInitStructure);
/* 使能预装载寄存器 */
TIM_OC1PreloadConfig(TIM4 , TIM_OCPreload_Enable);
TIM_OC2PreloadConfig(TIM4 , TIM_OCPreload_Enable);
TIM_OC3PreloadConfig(TIM4 , TIM_OCPreload_Enable);
TIM_OC4PreloadConfig(TIM4 , TIM_OCPreload_Enable);
TIM_ARRPreloadConfig(TIM4, ENABLE);
/* 启动 TIM 计数 */
TIM_Cmd(TIM4 , ENABLE);
}
|