[STM32F1] 请教下stm32定时中断2个函数

[复制链接]
1229|4
 楼主| 电子过客 发表于 2014-12-13 13:41 | 显示全部楼层 |阅读模式
有2个函数(TIM_GetITStatus(TIM3, TIM_IT_CC3) != RESET) 和(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
这俩个中断的具体区别是什么啊
一个函数是TIM_CNT计数等于=CRR候触发中断吗,触发中断?
另一个是TIM_CNT到ARR时候触发中断?
我做实验用(TIM_GetITStatus(TIM3, TIM_IT_CC3) != RESET)时候
把ARR=255 而TIM_OCInitStructure.TIM_Pulse=255时候怎么是方波呢?
airwill 发表于 2014-12-13 19:45 | 显示全部楼层
最关键的区别是, 前者来自于 CCR3 的匹配 (或捕捉) 触发; 而后者则是由定时器更新触发 (通常是计数器溢出).
这是定时器很重要的知识, 其实编程参考手册说得很仔细, 如果不容易理解, 建议通过实验弄清楚它
mmuuss586 发表于 2014-12-13 20:18 | 显示全部楼层
(TIM_GetITStatus(TIM3, TIM_IT_CC3) != RESET
这个一般用于定时器3的通道3,捕获输入超时中断,比如做BLDC,PMSM电机控制会经常用到;

(TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
这个定时器3中断
 楼主| 电子过客 发表于 2014-12-13 22:34 | 显示全部楼层
本帖最后由 电子过客 于 2014-12-13 22:37 编辑
airwill 发表于 2014-12-13 19:45
最关键的区别是, 前者来自于 CCR3 的匹配 (或捕捉) 触发; 而后者则是由定时器更新触发 (通常是计数器溢出). ...

谢谢您的指点,是不是 前者来自于 CCR3 的匹配 (或捕捉) 触发之后CNT计数就,不再向ARR上累计了,而是CNT 重新计数了?
通常是计数器溢出是指CNT计数到ARR是时候产生中断,这样理解对吗
小班儿 发表于 2014-12-14 16:33 | 显示全部楼层
学习下!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

55

主题

210

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部