初级会员

- 积分
- 103
- 金钱
- 103
- 注册时间
- 2021-3-25
- 在线时间
- 28 小时
|
10金钱
为啥我的步进电机没啥反应,下面是我写的初始化函数
GPIO_InitTypeDef GpioAInit; TIM_TimeBaseInitTypeDef Tim1Init;
TIM_OCInitTypeDef Tim1Ch1Init;
TIM_OCInitTypeDef Tim1Ch2Init;
TIM_OCInitTypeDef Tim1Ch3Init;
TIM_OCInitTypeDef Tim1Ch4Init;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_TIM1,ENABLE);//使能相应时钟
GpioAInit.GPIO_Mode=GPIO_Mode_AF_PP;//复用推挽输出
GpioAInit.GPIO_Pin=GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;
GpioAInit.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&GpioAInit);
Tim1Init.TIM_ClockDivision=0;
Tim1Init.TIM_CounterMode=TIM_CounterMode_Up;//向上计数
Tim1Init.TIM_Period=arr;//计数周期
Tim1Init.TIM_Prescaler=psc;//分频因子
TIM_TimeBaseInit(TIM1,&Tim1Init);
Tim1Ch1Init.TIM_OCMode=TIM_OCMode_PWM2;//PWM2模式(计数值大于比较值为有效电平)
Tim1Ch1Init.TIM_OCIdleState=TIM_OutputState_Enable;//输出比较使能
Tim1Ch1Init.TIM_OCPolarity=TIM_OCPolarity_High;//高电平有效
Tim1Ch1Init.TIM_Pulse=0;//设置比较值
TIM_OC1Init(TIM1,&Tim1Ch1Init);//IN1
Tim1Ch2Init.TIM_OCMode=TIM_OCMode_PWM2;
Tim1Ch2Init.TIM_OCIdleState=TIM_OutputState_Enable;
Tim1Ch2Init.TIM_OCPolarity=TIM_OCPolarity_High;
Tim1Ch2Init.TIM_Pulse=0;
TIM_OC2Init(TIM1,&Tim1Ch2Init);//IN2
Tim1Ch3Init.TIM_OCMode=TIM_OCMode_PWM2;
Tim1Ch3Init.TIM_OCIdleState=TIM_OutputState_Enable;
Tim1Ch3Init.TIM_OCPolarity=TIM_OCPolarity_High;
Tim1Ch3Init.TIM_Pulse=0;
TIM_OC3Init(TIM1,&Tim1Ch3Init);//IN3
Tim1Ch4Init.TIM_OCMode=TIM_OCMode_PWM2;
Tim1Ch4Init.TIM_OCIdleState=TIM_OutputState_Enable;
Tim1Ch4Init.TIM_OCPolarity=TIM_OCPolarity_High;
Tim1Ch4Init.TIM_Pulse=0;
TIM_OC4Init(TIM1,&Tim1Ch4Init); //IN4
TIM_CtrlPWMOutputs(TIM1,ENABLE);
TIM_ARRPreloadConfig(TIM1,ENABLE);
TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable);
TIM_OC2PreloadConfig(TIM1,TIM_OCPreload_Enable);
TIM_OC3PreloadConfig(TIM1,TIM_OCPreload_Enable);
TIM_OC4PreloadConfig(TIM1,TIM_OCPreload_Enable);
TIM_Cmd(TIM1,ENABLE);
|
最佳答案
查看完整内容[请看2#楼]
Tim1Ch1Init.TIM_OCIdleState=TIM_OutputState_Enable;//输出比较使能
没注意到这句错了。。。打扰了。。。
|