STM32
直播中

孙成红

7年用户 1366经验值
私信 关注
[问答]

求助,关于systick_ctrl寄存器设置与COUNTFLAG标志位使用关系的疑问求解

如标题所示,我再main.c里面自己写的systick的配置函数,自己写的中断函数,如果我配置函数,也就是systick_configuration里面设置寄存器CTRL的bit2,bit1,bit0位为011,也就是8分频,开中断,开始计数,那么我在主函数里面使用的采用判断标志位COUNTFLAG=1写的那个while函数就进不去里面那个等于1这个判断函数,就是我图中的if函数,如果把ctrl寄存器设置成为0x01也就是8分频,不开中断,开始计数,那就能进去,这个是怎么回事呢?

回帖(1)

王婷

2024-4-29 10:58:25
如果开了中断,但是却没有中断处理函数,那么系统会进入启动文件上出不来,也就是指向不到那个中断处理函数,然后就卡在那里了,所以就错了
但是val还是在继续往下减,
因为这个是内核里的事,
而程序就停在了启动文件里面
但是如果handler函数有,内容是空的,那就也没事了
中断发生的时候进入一下中断处理函数然后又出来了就,或者中断函数不是空的,执行一下中断,然后出来继续执行,
关键就是要有中断函数,不然开了中断没有中断函数,那就出问题了。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分