打印

STM32的TIM2的TIM_OCMode_Timing方式疑惑

[复制链接]
13979|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
在水一飞|  楼主 | 2009-3-16 17:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
按固件库的说明,STM32的通用定时器TIM2有6种方式:TIM_OCMode_Timing;
TIM_OCMode_Active;TIM_OCMode_Toggle;…………;

我写了一个定时器定时100us程序。
按下载的固件库程序里的实例,设置通用TIM2为TIM_OCMode_Timing方式,在定时比较中断里翻转输出PC.06管脚。但是,软件仿真时,是不能实现管脚输出方波的。当将TIM2设为TIM_OCMode_Toggle方式时,才能有方波输出。为什么啊?
请问,TIM_OCMode_Timing与TIM_OCMode_Toggle的区别是什么?
沙发
香水城| | 2009-3-16 18:32 | 只看该作者

请问你是如何配置的?

TIM_OCMode_Timing是在比较成功后不在对应输出管脚上产生输出。

TIM_OCMode_Toggle是在比较成功后翻转对应输出管脚上的电平。

使用特权

评论回复
板凳
在水一飞|  楼主 | 2009-3-17 11:49 | 只看该作者

回复

TIM_OCMode_Timing是在比较成功后不在对应输出管脚上产生输出,但是产生中断啊,我是在中断服务程序里将管脚翻转,应该有方波输出吧。
GPIO_WriteBit(GPIOC, GPIO_Pin_6, (BitAction)(1 - GPIO_ReadOutputDataBit(GPIOC, GPIO_Pin_6)));
但是,事实上,在TIM_OCMode_Timing方式下,按这种中断里翻转管脚的方式,是没有方波输出的啊。有人仿真过官方给的 ExamplesFireWareFWLibexamplesTIMTimeBase例程吗?

使用特权

评论回复
地板
香水城| | 2009-3-17 13:56 | 只看该作者

你能确定你的程序没有问题?

使用特权

评论回复
5
ijk| | 2009-3-18 11:11 | 只看该作者

最好不要软件仿真

  最好不要软件仿真,软件仿真常常不可信

使用特权

评论回复
6
bhsdlmj| | 2009-5-25 15:20 | 只看该作者

我试过了 楼主

MDK的这个软件仿真没有问题!! 应该是你的程序有问题 或者是你仿真方法不对头

使用特权

评论回复
7
袁嘉甫| | 2009-11-21 17:17 | 只看该作者
我也遇到这个相同问题,搞了好久。看来仿真不能太信。只是香版应该向KEIL反映一下。

使用特权

评论回复
8
秋天落叶| | 2009-11-22 09:25 | 只看该作者
最好是软硬件结合起来一起调试

使用特权

评论回复
9
gxgclg| | 2009-11-22 18:05 | 只看该作者
纯软件仿真,有时是跟实际相差较远

使用特权

评论回复
10
xiaohe669| | 2010-10-29 19:01 | 只看该作者
我也遇到了这样的问题,不知楼主解决了没有?

使用特权

评论回复
11
xiaohe669| | 2010-10-29 19:50 | 只看该作者
找出毛病了,我在之前的调试中把中断源给失能了,应该是
TIM_ITConfig(TIM2, TIM_IT_CC1 | TIM_IT_CC2 | TIM_IT_CC3 | TIM_IT_CC4, ENABLE);
就可以了!

使用特权

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

本版积分规则

3

主题

19

帖子

0

粉丝