谈到STM32的高级定时器,可能大家都比较头痛,因为这里面的关系总是纠缠在一起,剪不断理还乱,特别是OSSR和OSSI位,总感觉模模糊糊,不知所云,借助空余时间,给这几个知识点做一个总结。首先,在STM32中文参考手册里面提到,
OSSR:运行模式下“关闭状态”选择
该位用于MOE=1且通道为互补输出。没有互补输出的定时器中不存在OSSR位
0:当定时器不工作时,禁止OC/OCN输出(OC/OCN使能信号=0)
1:当定时器不工作时,一旦CCXE=1或CCXNE=1,首先开启OC/OCN并输出无效电平,然后置OC/OCN使能输出=1
这是stm32手册上的解释,但是很多人也许会有这样的困惑,那何为定时器不工作呢?我的理解就是,定时器的某个输出通道没有使能输出,打个比方:如果TIM1的通道1 CC1E=1,而CC1NE=0,此时就是stm32手册上所讲的“不工作”,其实说实在话,这个解释个人感觉是不能理解的,不工作很多人会理解为CR1的CEN=0;计数器停止工作,其实这是不正确的。
讲了这么多,大家可能会问,那OSR位到底是干什么的,有什么作用呢?那我们来看这个
当MOE=1的时候,OSSR=1 CCXE=0 CCXNE=1时,我们发现本来OCX通道被禁止使能,此时的输出状态却是OCX=CCXP,OCX_EN=1,OCX输出被使能了,并且输出的电平由CCXP决定,只是这种情况下互补输出通道必须有一个通道被使能,也就验证了手册上的描述 1:当定时器不工作时,一旦CCXE=1或CCXNE=1,首先开启OC/OCN并输出无效电平,然后置OC/OCN使能输出=1,如果互补的两个通道都禁止,则

最低0.47元/天 解锁文章
5344

被折叠的 条评论
为什么被折叠?



