打印

关于STM32定时器输出模式区别讨论

[复制链接]
16843|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zh5202|  楼主 | 2012-7-19 11:25 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
STM32的输出通道中,总共设置了如下模式(其实就是设置了OCxREF的具体动作):冻结、匹配时设置通道为有效电平、匹配时设置通道为无效电平、翻转、强制为有效电平、强制为无效电平、PWM模式1PWM模式2
       强制有效电平、强制无效电平在固件库中也有对应的设置:TIM_ForcedAction_ActiveTIM_ForcedAction_InActive,对应的函数是:void TIM_ForcedOCxConfig(TIM_TypeDef* TIMx, uint16_t TIM_ForcedAction),但在之前也需要配置TIM_OCInitTypeDef结构体来使能相应的通道,并设置对应端口的极性;

PWM1
PWM2在固件库中有对应的模式设置:TIM_OCMode_PWM1
脉冲宽度调制模式1)、TIM_OCMode_PWM2脉冲宽度调制2),其中PWM1PWM2的区别就是他们的输出是恰好相反的,就像配置TIM1的通道123为互补输出的关系一样吧,通过调用函数void TIM_OCxInit(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct);初始化TIM_OCInitTypeDef结构体实现配置,最后一定要记得调用函数设置BDTRMOE位,使能输出:void TIM_CtrlPWMOutputs(TIM_TypeDef* TIMx, FunctionalState NewState)
       匹配时设置通道为有效电平和匹配时设置通道为无效电平对应固件库的宏定义是:TIM_OCMode_Active(输出比较主动模式)、TIM_OCMode_Inactive(输出比较非主动模式),配置TIM_OCInitTypeDef结构体,可是实现对应的功能,这两个模式的联系与区别和PWM1PWM2的一样,都实现了输出信号在CNT整体计数过程中的翻转;但是这里就不需要设置BDTRMOE位来使能输出了么,这是为什么呢
       翻转对应固件库的宏定义为:TIM_OCMode_Toggle(输出比较触发模式),也是通过配置TIM_OCInitTypeDef结构体,调用相应的初始化函数,就可以实现配置了;翻转是从有效电平到无效电平,还是从无效电平到有效电平呢?这里也不需要设置BDTRMOE位来使能输出了么,这又是为什么呢?
       最后是冻结模式,对照程序,只剩下一个TIM_OCMode_Timing

输出比较时间模式)了,那意思冻结模式就是对应固件库的Timing模式了,网友也说这个模式下,输出管脚无变化?那什么叫做输出比较时间模式呢,是用来开启TIM_IT_CC1比较中断,从而实现相当于定时器的功能么(简单的说就是实现将定时器的定时分为两个步骤)?
       对照上面的分析,还有如下两个问题:

1.
对照模式定义:


       按前面分析,所有输出模式都是CCRx在于CNT进行比较的吧?如果是的话,那为什么后面的PWM命名不能统一呢?

2.
还是如前面分析所述,那么PWM1PWM2ActiveInactive以及Toggle
五种模式都是实现了输出比较控制端口翻转的功能(只是翻转方式不一样而已),对吧?那为什么要搞这么多呢?不是麻烦嘛,我可以用Toggle来实现PWM,也可以用Active来实现PWM,又有什么意义呢?
沙发
香水城| | 2012-7-19 12:04 | 只看该作者
是我穿越了吗

我怎么记得刚看到过这样的贴子,还看到具体回复和解释了。你怎么又发了

具体的各个模式,不过是
1, 只有定时中断,没有输出
2, 输出定时翻转
3, 定时输出有效电平
4, 定时输出无效电平
针对各种不同应用

照你说的无用论,那么大家连定时器都可以不要用了,用软件计数软件翻转I/O口,一样可以输出PWM的。

使用特权

评论回复
板凳
airwill| | 2012-7-19 12:20 | 只看该作者
1.对照模式定义:

       按前面分析,所有输出模式都是CCRx在于CNT进行比较的吧?如果是的话,那为什么后面的PWM命名不能统一呢?

2.还是如前面分析所述,那么PWM1、PWM2、Active、Inactive以及Toggle五种模式都是实现了输出比较控制端口翻转的功能(只是翻转方式不一样而已),对吧?那为什么要搞这么多呢?不是麻烦嘛,我可以用Toggle来实现PWM,也可以用Active来实现PWM,又有什么意义呢?

每一个命名代表了不同的功能,而每一个功能代表了不同的应用。 不能说因为你没有用到, 就没有用甚至没有意义!

使用特权

评论回复
地板
zh5202|  楼主 | 2012-7-19 13:02 | 只看该作者
2# 香水城
香主,首先谢谢你来为我解答。不过我没有你想的那么极端,呵呵
我只是按照上面的分析,搞不明白ST为什么要把输出比较搞的这么多个模式,让人比较难以理解。就像3楼说的,我的目的就是想搞明白每个模式的用途是什么而已。
毕竟只有知道它的具体应用场景,才能深刻理解对应模式的必要和好处嘛。
做学问,做研究不仅要知道是什么,还要知道为什么,更要知道怎么样嘛,可是我现在就是不知道为什么了,所以麻烦香主了

使用特权

评论回复
5
zh5202|  楼主 | 2012-7-19 13:04 | 只看该作者
3# airwill
就是啊,你说的很对,而我最想知道的就是每一个命名代表了什么功能,又分别代表了什么应用?
因为他们的输出都是事先了输出端口的电平翻转,那么不同的翻转形式代表了不同的应用,那么每一种翻转具体对应什么样的应用呢?
Could you help?Thank you very much.

使用特权

评论回复
6
zh5202|  楼主 | 2012-7-25 17:38 | 只看该作者
看样子没人来帮我回答问题了,哎。。。

使用特权

评论回复
7
it_yrj| | 2013-4-21 15:50 | 只看该作者
香水城 发表于 2012-7-19 12:04
是我穿越了吗

我怎么记得刚看到过这样的贴子,还看到具体回复和解释了。你怎么又发了

香主,请教一下STM32同一定时器的不同通道可以配置为不同的模式吗?例如定时器1的1、2通道设置为正交编码模式,3、4通道设置为PWM模式?

使用特权

评论回复
8
hawksabre| | 2013-4-21 19:14 | 只看该作者
帮你顶起来   希望有高手能够跳出来解决这个问题   顶一个    看看版主能不能出一把力

使用特权

评论回复
9
pinghpu| | 2013-5-2 16:37 | 只看该作者
香水城 发表于 2012-7-19 12:04
是我穿越了吗

我怎么记得刚看到过这样的贴子,还看到具体回复和解释了。你怎么又发了

请教,pwm模式输出时,当电平翻转时可以触发另一个事件么?

使用特权

评论回复
10
拿起书本| | 2013-5-2 16:43 | 只看该作者
这个模式我也不太懂,还是多看看stm32参考手册的介绍吧

使用特权

评论回复
11
pinghpu| | 2013-5-2 17:15 | 只看该作者
it_yrj 发表于 2013-4-21 15:50
香主,请教一下STM32同一定时器的不同通道可以配置为不同的模式吗?例如定时器1的1、2通道设置为正交编码 ...

同问,不知有解了没?

使用特权

评论回复
12
cjhk| | 2013-5-2 18:42 | 只看该作者
不是很懂这个模式  还是再等等香主的意见吧    小菜鸟  飘过

使用特权

评论回复
13
fanxsd| | 2014-7-6 21:05 | 只看该作者
这么好的帖子 为什么没有人顶呢,我现在也在研究定时器搞出这么多来,我都一头雾水,求香版主和大神们解答一下啊!

使用特权

评论回复
14
FAQ| | 2014-10-10 15:25 | 只看该作者
关注下

使用特权

评论回复
15
Zacking| | 2015-1-8 11:25 | 只看该作者
一般会用到stm32定时器哪些工作模式呢?

使用特权

评论回复
16
fhlzssg598| | 2015-2-16 12:35 | 只看该作者
好问题

使用特权

评论回复
17
戈卫东| | 2015-2-16 13:19 | 只看该作者
好像简单的问题被搞复杂了。。。。。。。。
固件库也是有缺点的啊。。。。。。。。。。。。。。。

使用特权

评论回复
18
戈卫东| | 2015-2-16 13:19 | 只看该作者
不看RM,不看寄存器,只看固件库,有些东西弄不明白

使用特权

评论回复
19
zh113214| | 2015-2-28 21:34 | 只看该作者
pinghpu 发表于 2013-5-2 16:37
请教,pwm模式输出时,当电平翻转时可以触发另一个事件么?

这个怎么触发啊,表示没遇到过。。。

使用特权

评论回复
20
逍遥哥哥| | 2017-2-25 19:19 | 只看该作者
这么多年了还没解决吗。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:Need to harder study!Thank you for everyone had helped me.

5

主题

248

帖子

2

粉丝