关于【定时器使能】和【中断优先级配置】的顺序问题

2019-07-20 20:31发布

本帖最后由 xiaofang 于 2016-8-26 13:32 编辑

探索者F4开发板。
输入捕获实验,寄存器版。
实验要将定时器5设置为输入捕获模式,在初始化定时器5的时候,程序的最后两步是
使能定时器(TIM5->CR1|=0x01)和配置定时器的中断优先级(MY_NVIC_Init(2,0,TIM5_IRQn,2))。
经过多次实验发现:
1.如果在使能定时器之前先配置优先级,那么SR寄存器显示能捕获到外部的上升沿,
但是定时器从始至终不计数,CNT寄存器一直都是0x0.
2.如果在使能定时器之后再配置优先级,定时器就能完全正常工作。

那么,我想问一下:
1.定时器的使能和优先级配置有确定的先后关系吗?
2.究竟是什么原因造成了这种现象?
3.按照正常思维,应该是先完成对定时器的所有有关配置(包括配置优先级),最后使能定时器才对啊?

如图:第19和20行(图示的情况下是不能正常工作的)。
QQ截图20160826132809.png

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。