大学生
最后登录1970-1-1
在线时间 小时
注册时间2017-7-29
|
本帖最后由 纸he 于 2017-11-21 13:23 编辑
ARR是在TIM_TimeBaseInit中初始化,确定周期
CCRx可以在TIM_OCxInit中初始化,确定占空比,也可以用TIM_SetComparex临时改变
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1; //CNT<CCR为有效电平
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //设置极性-有效电平为高电平
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//输出使能
TIM_OCInitStructure.TIM_Pulse = INIT_DUTY;
TIM_OC3Init(TIM5, &TIM_OCInitStructure);
TIM_SetCompare1(TIM_PWM,(u16)(MOTO1_PWM+INIT_DUTY));
那么问题来了,
他加上INIT_DUTY是什么意思,看了2份代码都是这样,说的是TIM_Pulse用来是用来设置脉宽,
如果是高低电平的脉宽,早在TIM_TimeBaseInit设置ARR的时候确定了。
还有个疑惑就是,没想明白,电机其实有没有总脉宽占用时间要求的?不然那个我设置的占空比是在我pwm周期上的
|
|