打印

STM32芯片输出模式问题

[复制链接]
3692|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zh5202|  楼主 | 2012-7-11 18:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在STM32设计中,将输出设置成了三种模式:强制输出模式;输出比较模式以及PWM模式。强制输出模式可通过TIM_ForcedOCxConfig()函数实现;PWM模式有PWM1和PWM2两种模式;而输出比较模式则有:
输出比较时间模式:Timing
输出比较主动模式:Active
输出比较非主动模式:Inactive
输出比较触发模式:Toggle
为什么要分为四种模式,这里就搞不懂了,请问香主,这里的四个模式到底有什么样的区别呢?最好是说明这么设计的初衷是什么?
沙发
figo20042005| | 2012-7-11 20:01 | 只看该作者
就是当计数器CNT计数到CCRx寄存器的值的时候:

timing:管脚无变化

toggle:管脚状态翻转,高变低,低变高

active:管脚状态强制变成有效电平

inactive:管脚状态强制变成无效电平

至于有效电平是高还是低,要看CCER寄存器的CCxP位设置。

使用特权

评论回复
板凳
figo20042005| | 2012-7-11 20:05 | 只看该作者
详细讨论可以看下,以前的这个帖子 https://bbs.21ic.com/icview-186479-1-1.html

使用特权

评论回复
地板
zh5202|  楼主 | 2012-7-13 10:14 | 只看该作者
2# figo20042005
看了看手册,对应程序,理解了下面三个:
toggle:管脚状态翻转,在CCRx与CNT匹配时,翻转输出;CNT溢出后输出变回原来的状态(与PWM输出相似);
active:CCRx与CNT匹配之前,输出无效状态;匹配时变成有效状态;CNT溢出后又变成无效状态(与Toggle和PWM输出还是类似)
inactive:与Active相反,CCRx与CNT匹配之前,输出有效状态;匹配之后输出无效状态;CNT溢出时输出无效状态。(与Toggle和PWM输出还是类似)
Active和Inactive输出的是有效状态是高还是低,要看CCER寄存器的CCxP位设置。
依照上面看,Toggle、Active和Inactive三个模式其输出波形都和PWM类似(是输出波形啊),而且其占空比都可以通过CCRx来控制。
如果上面的分析正确,那为什么要设置这么多个模式呢,一个PWM1和PWM2不就能实现以上功能了么?

另外针对Timing模式,手册上说的是管脚输出无变化,那和调用IM_ForcedOCxConfig()函数强制输出有什么区别?更重要的是,我最近配置Timing模式输出,其管脚输出状态在改变,这又是怎么回事?

使用特权

评论回复
5
onlyrcy| | 2012-7-13 12:49 | 只看该作者
学习了

使用特权

评论回复
6
zh5202|  楼主 | 2012-7-16 16:30 | 只看该作者
怎么没人来帮我解答问题啊?

使用特权

评论回复
7
1120112724| | 2015-3-18 14:48 | 只看该作者
zh5202 发表于 2012-7-13 10:14
2# figo20042005  
看了看手册,对应程序,理解了下面三个:
toggle:管脚状态翻转,在CCRx与CNT匹配时, ...

楼主,toggle模式时钟溢出的时候会恢复原来状态吗

使用特权

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

本版积分规则

5

主题

248

帖子

2

粉丝