打印
[STM32]

关于定时器1的捕获问题,希望大家帮忙。

[复制链接]
1070|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
东北小辉辉|  楼主 | 2016-3-29 21:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想使用TIM1的捕获功能,需要用到更新中断和捕获中断。

但是发现TIM1并不是像其他的通用定时器一样,抛去TIM1是挂载到APB2上这一点不谈,区别主要体现在两方面,暂时使用库函数编写,寄存器还没有尝试。

首先是配置NVIC中断分组时,通用定时器直接NVIC_InitStructure.NVIC_IRQChannel = TIM2_IRQn;就可以配置全部的定时器中断,然后在下面的中断服务函数void TIM2_IRQHandler(void);中处理就可以了。

但是TIM1中断是分开的,分为四种,TIM1_BRK_IRQn,TIM1_UP_IRQn ,TIM1_TRG_COM_IRQn,TIM1_CC_IRQn,比如我现在要使用TIM1_UP_IRQn 和TIM1_CC_IRQn,那么我是否需要分别给他们配置一个抢占优先级和响应优先级,还是我可以这样:
NVIC_InitStructure.NVIC_IRQChannel = TIM1_CC_IRQn | TIM1_UP_IRQn;
然后给他们配置一个相同的抢占优先级和响应优先级?

接下来是中断服务函数,对应上面,TIM1的中断服务函数也是四种,TIM1_BRK_IRQHandler,TIM1_UP_IRQHandler,TIM1_TRG_COM_IRQHandler,TIM1_CC_IRQHandler(这个可以在启动文件中找到),那么还是上面的例子,如果我使用更新中断和捕获中断是否要调用两个中断服务函数,我现在的状况就是能进入捕获中断,无法进入更新中断。

相关帖子

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

本版积分规则

13

主题

91

帖子

0

粉丝