打印
[STM32F1]

TIM定时器 影子寄存器问题

[复制链接]
1769|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fanxsd|  楼主 | 2014-8-30 21:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1.TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Disable);  失能CCR1的影子寄存器
  TIM1->CCR1=Setdate ;  是不是设置了占空比立即有效啊!
2.TIM_OC1PreloadConfig(TIM1,TIM_OCPreload_Enable);    如果使能了CCR1的影子寄存器
  TIM1->CCR1=Setdate ;  设置完之后产生更新事件之后才有效,是完成一个周期就更新吧! 我现在板子上实    验的结果是关闭通道1,再打开通道1。占空比才有效。本人十分的郁闷。
恳求各位大神解答一下。
沙发
fanxsd|  楼主 | 2014-8-30 22:16 | 只看该作者
大神们看了留个帖子啊!还有什么才叫更新事件啊 解答一下啊!这个定义好混乱啊!CNT>ARR是不是啊

使用特权

评论回复
板凳
fanxsd|  楼主 | 2014-8-30 22:36 | 只看该作者
不要沉底啊!坐等回复!

使用特权

评论回复
地板
mmuuss586| | 2014-8-30 22:56 | 只看该作者
https://bbs.21ic.com/icview-709244-1-1.html
可以看看,ST官方的中文资料,有讲到定时器方面;

使用特权

评论回复
5
mmuuss586| | 2014-8-30 23:02 | 只看该作者
TIM1->CCR1=Setdate ;
更新通道1 PWM占空比;

使用特权

评论回复
6
huzi2099| | 2014-8-31 00:35 | 只看该作者
怀疑你CR1的UDIS置1禁止更新了.

使用特权

评论回复
7
fanxsd|  楼主 | 2014-8-31 13:50 | 只看该作者
huzi2099 发表于 2014-8-31 00:35
怀疑你CR1的UDIS置1禁止更新了.

有关于CR1 寄存器的操作只有   
   TIM_TimeBaseStructure.TIM_Prescaler = 2;                                           //TIM基本初始化          36MHZ
   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_CenterAligned2;//中央对齐计数模式
   TIM_TimeBaseStructure.TIM_Period = 2999;                                           //PWM周期  
   TIM_TimeBaseStructure.TIM_ClockDivision = 0;
   TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;

   TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);



   TIM_Cmd(TIM1,ENABLE);
这里边都没有UDIS的操作,系统默认应该是0吧。
TIM1->CCER=0;  然后再打开通道1,PWM的占空比就有效了。

使用特权

评论回复
8
fanxsd|  楼主 | 2014-8-31 14:48 | 只看该作者
huzi2099 发表于 2014-8-31 00:35
怀疑你CR1的UDIS置1禁止更新了.

谢谢你,问题我自己已经解决了,因为我使用了注入中断问题。程序BUG造成的。

使用特权

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

本版积分规则

13

主题

559

帖子

3

粉丝