打印

调试TIM3,好像CCRX不起作用。

[复制链接]
2100|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hl1200aa|  楼主 | 2009-3-15 23:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本来想利用TIM3产生基准时间,通过CCR1做一个可调的闪烁LED实验,但是怎么调整TIM_OCInitStructure.TIM_Pulse都没有用,LED闪烁的速度都一样,郁闷ing,请高手指点下。

/* Time base configuration */ 
  TIM_TimeBaseStructure.TIM_Period = 65535;           
  TIM_TimeBaseStructure.TIM_Prescaler =200;        
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;     
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;  
   
  TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); 

 /* Output Compare Toggle Mode configuration: Channel1 */ 
   TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_Toggle;           
  TIM_OCInitStructure.TIM_Channel = TIM_Channel_1;           
  TIM_OCInitStructure.TIM_Pulse =1;   
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low; 
  TIM_OCInit(TIM3, &TIM_OCInitStructure); 

  TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable); 
  /* TIM3 enable counter */ 
  TIM_Cmd(TIM3, ENABLE); 
沙发
barboon| | 2009-3-16 10:00 | 只看该作者

那是因为你选择的是TIM_OCMode_Toggle模式

TIM_OCMode_Toggle模式下,每当计数器值等于CCR寄存器的值,OCxREF就翻转一次,相应的输出也会翻转一次。lz的程序里

TIM_TimeBaseStructure.TIM_Period = 65535;

TIM_OCInitStructure.TIM_Pulse =1;

这就是说,计数器从0到65535计数,每当到1的时候,输出反转,不管你把TIM_Pulse改成几,都是每65535翻转一次,怎么改都是一样的。

这种情况下,如果你期望输出的反转频率改变应该修改
TIM_TimeBaseStructure.TIM_Period = 65535;
或者
TIM_TimeBaseStructure.TIM_Prescaler =200;
这个参数

使用特权

评论回复
板凳
hl1200aa|  楼主 | 2009-3-16 12:31 | 只看该作者

谢谢!

谢谢 barboon

使用特权

评论回复
地板
hl1200aa|  楼主 | 2009-3-16 19:34 | 只看该作者

求timer的详细资料

barboon
哪里有关于timer的详细介绍阿?

使用特权

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

本版积分规则

8

主题

44

帖子

0

粉丝