打印
[STM32F1]

【stm32定时器】来自ST的电机库,有一点段不明白其意思

[复制链接]
1507|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
970253146|  楼主 | 2017-4-7 20:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
请教各位工程师们一个问题,在STM32定时器当中见到这样的一个配置
  TIM_SelectOutputTrigger(TIM1, TIM_TRGOSource_Update);       将UPDATE事件作为触发输出
//  TIM_ClearITPendingBit(TIM1, TIM_IT_Break);                           没用刹车功能,下奴婢官
//  TIM_ITConfig(TIM1, TIM_IT_Break,ENABLE);
  TIM_ARRPreloadConfig(TIM1, ENABLE);                                       使能预装载
  TIM_Cmd(TIM1, ENABLE);                                                            使能定时器1
  // Resynch to have the Update evend during Undeflow  
  TIM_GenerateEvent(TIM1, TIM_EventSource_Update);                在这里,人为的产生了一个Update事件,也就是产生了一个触发输出事件
  // Clear Update Flag                                                                       
  TIM_ClearFlag(TIM1, TIM_FLAG_Update);                                     清标志位
  TIM_ITConfig(TIM1, TIM_IT_Update, DISABLE);
  TIM_ITConfig(TIM1, TIM_IT_CC4,DISABLE);
不过,各位朋友可以看到,在调用TIM_GenerateEvent函数的时候,是没有使能UPDATE中断的,也就是说,软件产生该事件之后,定时器是不会产生中断的,产生完UPDATE事件之后,又马上清楚了标志位。感觉像隔着衣服挠痒痒,没啥实质性的名堂呢。然而程序注释当中,写到Resynch to have the Update evend during Undeflow ,将下溢中断跟UODATE同步起来,我有点不解这是什么意思,请指点迷津。谢谢各位
沙发
mintspring| | 2017-4-7 22:10 | 只看该作者
应该是重新同步更新时间,下溢出的时候,应该是定时器更新的事件吧,后面清理掉标志位是为了下一次触发?

使用特权

评论回复
板凳
戈卫东| | 2017-4-7 23:33 | 只看该作者
Update事件会产生一些寄存器加载---它们可能不是在你写的时候马上起作用,需要在特定信号的作用下生效。

使用特权

评论回复
地板
seawind1986| | 2017-4-7 23:39 | 只看该作者
楼主分享一下电机库的源码好吗

使用特权

评论回复
5
dongnanxibei| | 2017-4-8 12:55 | 只看该作者
更新和TIM1相关的事件。

使用特权

评论回复
6
dongnanxibei| | 2017-4-8 12:56 | 只看该作者
对定时器操作后,好像都要调用这个函数。

使用特权

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

本版积分规则

93

主题

289

帖子

5

粉丝