TIM_OC2PreloadConfig(TIM8, TIM_OCPreload_Enable); TIM_ARRPreloadConfig(TIM8, ENA...这两个高级定时器中的使能到底是什...

2019-07-20 01:16发布

TIM_OC2PreloadConfig(TIM8, TIM_OCPreload_Enable);  //CH2预装载使能           TIM_CCMR1_OC2PE
TIM_ARRPreloadConfig(TIM8, ENABLE); //TIMx在ARR上的预装载使能        TIM_CR1_ARPE
这两句程序是我最近学习正点原子的扩展实验18 ATK-2MD4850步进电机驱动器实验中的高级定时器中的两个使能,看了挺久的
还是有点难以理解两者之间的区别以及作用。
下面是源程序的截图以及中文参考手册里的寄存器描述:
QQ截图20190216191658.png 源程序部分截图

QQ截图20190216192741.png TIM1&TIM8的控制寄存器CR截图

QQ截图20190216192816.png TIM1&TIM8捕获/比较模式寄存器CCMR截图
新手上路,希望大神们解答疑惑!!谢谢!
TIM_OCInitStructure.TIM_Pulse = arr>>1;   另外,关于步进电机里还有一个疑惑,为什么这里的Pulse要右移一位?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
5条回答
正点原子
1楼-- · 2019-07-20 03:02
1,预装载用于精确控制波形,简单的说,使能预装载,则必须等待一个周期结束后,才会更新寄存器值。如果不使能,则是立即剩下。
2,别人写代码,你可以自己写。>>1相当于/2
八蹄马
2楼-- · 2019-07-20 03:58
正点原子 发表于 2019-2-16 19:36
1,预装载用于精确控制波形,简单的说,使能预装载,则必须等待一个周期结束后,才会更新寄存器值。如果不 ...

意思是OC2PE是使能预装载寄存器?ARPE是使能预装载的缓冲?
使能的作用大概是知道的,就是他们的作用区别不太明白,因为都是预装载的使能
林光华ing
3楼-- · 2019-07-20 06:18
 精彩回答 2  元偷偷看……
八蹄马
4楼-- · 2019-07-20 07:43
林光华ing 发表于 2019-2-19 15:11
一个是针对ARR的,一个是针对CCR。这是两码事。

好的,谢谢
枉不觉
5楼-- · 2019-07-20 12:10
 精彩回答 2  元偷偷看……