@Timer
1、TIM_ARRPreloadConfig设置为DISABLE 和ENABLE的问题,他的作用只是允许或禁止在定时器工作时向ARR的缓冲器中写入新值,以便在更新事件发生时载入覆盖以前的值。如果需要更改的话,需要写这个函数。
2、TIM_PrescalerConfig函数的作用就是在定时器工作时改变预分频器的值,那么如果后来一直是初始化的值,不写入新值的话,这个函数也可以不用写了。
TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable); //使能TIM3在CCR2上的预装载寄存器,即TIM3_CCR2的预装载值在更新事件到来时才能被传送至当前寄存器中。
这句话是说,CCR2中的预装载值何时被传送到当前的CNT寄存器中,这里我们选择的是当更新事件到来的时候才装载,追踪寄存器的设置可知,原来设置的是CCMR1的OC2PE,其实还有一种方式是立即装载看手册:P248-249
OC1PE:输出比较1预装载使能(Output compare 1 preload enable) 位3
0:禁止TIMx_CCR1寄存器的预装载功能,可随时写入TIMx_CCR1寄存器,并且新写入的数值立即起作用。
1:开启TIMx_CCR1寄存器的预装载功能,读写操作仅对预装载寄存器操作,TIMx_CCR1的预装载值在更新事件到来时被传送至当前寄存器中。