初级会员

- 积分
- 70
- 金钱
- 70
- 注册时间
- 2015-10-24
- 在线时间
- 26 小时
|
1金钱
72M主频 72预分频 1M, 计数值1,输出1M的PWM,问题就在计数器这里,咱空比是 CompareValue /Autoreload ,现在Autoreload=1,没法调整了啊?
还有没有其他的设置方法呢?
- TIM_InitStruct.Prescaler = 71;
- TIM_InitStruct.CounterMode = LL_TIM_COUNTERMODE_UP;
- TIM_InitStruct.Autoreload =100;
- TIM_InitStruct.ClockDivision = LL_TIM_CLOCKDIVISION_DIV1;
- TIM_InitStruct.RepetitionCounter = 0;
- LL_TIM_Init(TIM1, &TIM_InitStruct);
- LL_TIM_EnableARRPreload(TIM1);
- LL_TIM_SetClockSource(TIM1, LL_TIM_CLOCKSOURCE_INTERNAL);
- LL_TIM_OC_EnablePreload(TIM1, LL_TIM_CHANNEL_CH1);
- TIM_OC_InitStruct.OCMode = LL_TIM_OCMODE_PWM1;
- TIM_OC_InitStruct.OCState = LL_TIM_OCSTATE_DISABLE;
- TIM_OC_InitStruct.OCNState = LL_TIM_OCSTATE_DISABLE;
- TIM_OC_InitStruct.CompareValue =50;
复制代码
|
最佳答案
查看完整内容[请看2#楼]
Autoreload为啥要设置成100?从0开始向上计数啊,你要的1~100%实现不了的,输出频率太高了,只能实现1/72的粗略精度
|