[技术问答] 关于F460无法进入Systick中断

[复制链接]
 楼主| Hkk233 发表于 2023-4-11 10:34 | 显示全部楼层 |阅读模式
最近在用F460系列的芯片,准备用Systick做一个定时,但是在配置好Systick之后,无法进入中断函数,这个时候在keil里面进debug调试,systick定时器已经在计数了,中断也已经使能了,就是无法进入中断服务函数,但是使用官方给的例程就可以,是时钟配置的不对吗?
wubangmi 发表于 2023-4-11 10:38 | 显示全部楼层
我觉得吧如果你时钟配置的没错误的话就是你工程建的有问题。
这个问题很好排查,时钟都不配置,直接初始化Systick看是否能进中断。
 楼主| Hkk233 发表于 2023-4-11 15:01 | 显示全部楼层
wubangmi 发表于 2023-4-11 10:38
我觉得吧如果你时钟配置的没错误的话就是你工程建的有问题。
这个问题很好排查,时钟都不配置,直接初始化S ...

这么邪门的吗?我尝试了一下,在官方给的例程里面按照我的来配置,进中断是没问题的,我其他功能都是好用的,就这个中断进不去。
wubangmi 发表于 2023-4-11 17:59 | 显示全部楼层
Hkk233 发表于 2023-4-11 15:01
这么邪门的吗?我尝试了一下,在官方给的例程里面按照我的来配置,进中断是没问题的,我其他功能都是好用 ...

请用最新的3.1.0的库,老库有可能是有弱函数,你工程没加--keep=*Handler。
yang377156216 发表于 2023-4-17 09:36 | 显示全部楼层
是工程配置的问题,主要对一下 IRAM 和 IROM ,官方自带的是通过 .sct 方式的,而不是通过魔法棒中 --target 页面设置的,不注意的话就会导致无法正常进入中断服务函数。
wubangmi 发表于 2023-4-17 21:47 | 显示全部楼层
楼上说的对,看了下例程,确实是由于SystemCoreClock这个变量定义成__NO_INIT造成进入到main函数后,SystemCoreClock变量值被清空成了0.导致主频对应的值变成了0导致SysTick跑不起来。
Henryko 发表于 2023-5-12 23:53 | 显示全部楼层
是不是有弱定义啊
Estelle1999 发表于 2023-5-23 16:44 | 显示全部楼层
有可能啊,你检查排除一下
B1lanche 发表于 2023-5-23 17:50 | 显示全部楼层
如果时钟源和频率不正确,可能会导致Systick无法正确计时
Charlotte夏 发表于 2023-5-23 18:52 | 显示全部楼层
计数方式确认了么?
Alina艾 发表于 2023-5-23 20:02 | 显示全部楼层
可以在Systick配置中检查时钟源和频率是否与官方例程中的设置一致
lidi911 发表于 2023-5-23 20:46 来自手机 | 显示全部楼层
那就是你自建工程是不是哪里配置没对
Carina卡 发表于 2023-5-23 21:09 | 显示全部楼层
得确保中断号是在正确的范围内
Annie556 发表于 2023-5-23 21:18 | 显示全部楼层
Systick的使能状态怎么样?
Betty996 发表于 2023-5-24 07:08 | 显示全部楼层
系统调用栈错误也会出现问题的
Charlene沙 发表于 2023-5-24 08:36 | 显示全部楼层
检查代码看哪块出现问题了,然后改过来在测试
alxd 发表于 2023-5-24 09:21 | 显示全部楼层
可能是因为你的系统中缺少相应的中断处理程序
Emily999 发表于 2023-5-24 12:51 | 显示全部楼层
用官方提供的例程还这样,那就得考虑芯片的系统是不是兼容的了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

8

主题

16

帖子

0

粉丝
快速回复 返回顶部 返回列表