STM32的TIM2的TIM_OCMode_Timing方式疑惑

feref   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的区别是什么?

回复评论 (10)

请问你是如何配置的?

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

TIM_OCMode_Toggle是在比较成功后翻转对应输出管脚上的电平。
点赞  2009-3-16 18:32

回复

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

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

                                  
点赞  2009-3-17 13:56

回复

程序没问题啊。
我的QQ:330614066,能和您一起探讨下吗?谢谢
点赞  2009-3-18 11:05

最好不要软件仿真

                                   最好不要软件仿真,软件仿真常常不可信
点赞  2009-3-18 11:11

我试过了 楼主

                                 MDK的这个软件仿真没有问题!! 应该是你的程序有问题 或者是你仿真方法不对头
点赞  2009-5-25 15:20
                                 我也遇到这个相同问题,搞了好久。看来仿真不能太信。只是版主应该向KEIL反映一下。
点赞  2009-11-21 17:17
                                 纯软件仿真,有时是跟实际相差较远
点赞  2009-11-22 18:05
                                 我也遇到了这样的问题,不知楼主解决了没有?
点赞  2010-10-29 19:01
找出毛病了,我在之前的调试中把中断源给失能了,应该是
TIM_ITConfig(TIM2, TIM_IT_CC1 | TIM_IT_CC2 | TIM_IT_CC3 | TIM_IT_CC4, ENABLE);
就可以了!
点赞  2010-10-29 19:50
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复