• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32F103中断定时器为什么程序开始就进入了中断

zzgege 2019-07-12 浏览量:1260
主函数如下:
int main(void)
{
                NVIC_Configuration();//配置中断的优先级分组为4:4//一定要放在main函数的第一行
       
                LED_Init();
                TIM2_Init();
                //LED_Init();
       
                while(1)
                {

                }
}

函数的大意是计时器计时1S,进入一次中断,中断函数中写的是LED灯状态翻转一次,并清除中断标志,LED初始化后灯为熄灭状态。
现在的问题是当LED函数初始化放在TIM2_Init();之前开发板复位后灯直接亮起 意味着直接进入了中断
而TIM2_Init();放在LED_Init();之前,开发板复位后会计时1S后灯亮,,求大神这是为什么?
0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这个问题,首先你要确认,led_init确实是让led灭了。

    下一步,定时器能够实现1s延时中断,16位定时器,最大计数值是65536,所以要接合你定时器初始化,看一下,延时中断时间是否准确。

    像stm32之类arm核的mcu,定时器都是可以自动重载的,定时器运行没问题,是不应该出现,初始化完成就中断的问题的。

    • 发布于 2019-07-13
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:2
  • 可能是定时器初始化的时候没有复位定时器,这个时候当初始化定时器后直接就进去中断了,所以不是立刻执行led初始化,这个时候灯肯定就不亮,等出了中断在初始化led,这个时候才亮,也就是说少一个定时周期
    • 发布于2019-07-13
    • 举报
    • 评论 0
    • 0
    • 0

  • 因为你的定时器使能后就开始计时了,这样的话溢出计时就到达中断
    • 发布于2019-08-10
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32F103中断定时器为什么程序开始就进入了中断