打印
[STM32F3]

STM32F373的比较器中断程序进不去

[复制链接]
3826|11
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
EAMCU|  楼主 | 2021-8-7 12:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
比较器中断触发时卡死,用debug发现程序停在了B.这里

网上查询表示中断没有进入服务程序?
但是我看NVIC,中断已经设置触发了,并且是Active的

中断服务程序也是写了的,为啥进不去呢,请问可能的原因是什么?

11845610e04f843ef9.png (313 KB )

11845610e04f843ef9.png

使用特权

评论回复
沙发
yangxiaor520| | 2021-8-7 18:06 | 只看该作者
开启了中断后,读标志应该是对应readITflag,你看下库函数。

使用特权

评论回复
板凳
EAMCU|  楼主 | 2021-8-9 11:14 | 只看该作者
yangxiaor520 发表于 2021-8-7 18:06
开启了中断后,读标志应该是对应readITflag,你看下库函数。

我用的LL库,函数名称有变化
现在的问题是中断服务程序进不去,根本到不了执行readflag这一步

使用特权

评论回复
地板
EAMCU|  楼主 | 2021-8-10 17:59 | 只看该作者
问题解决了,不是我自己的问题,应该是官方的问题。
LL库为了F3之间通用,整了一堆别名,如下描述
/******************************************************************************/
/*  For a painless codes migration between the STM32F3xx device product       */
/*  lines, the aliases defined below are put in place to overcome the         */
/*  differences in the interrupt handlers and IRQn definitions.               */
/*  No need to update developed interrupt code when moving across             */
/*  product lines within the same STM32F3 Family                              */
/******************************************************************************/

这个会导致COMP1_2_IRQHandler被编译成COMP_IRQHandler,而检查map文件,发现COMP_IRQHandler居然在最后链接时被remove掉了,说明编译器认为该函数没有用上。
于是把startup_stm32f373xc.s文件中所有的COMP1_2_IRQHandler都改成COMP_IRQHandler,于是中断服务程序正常调用了。

因此,出现问题的原因应该是:startup_stm32f373xc.s文件命名,别名设置,编译器链接判断综合在一起除了1个BUG
我的解决办法不美观,但是不管了,能用就行

使用特权

评论回复
5
sonicll| | 2021-8-11 08:54 | 只看该作者
EAMCU 发表于 2021-8-10 17:59
问题解决了,不是我自己的问题,应该是官方的问题。
LL库为了F3之间通用,整了一堆别名,如下描述
/******* ...

中断服务函数的名字,一定要和中断向量表里的函数名字一致,如果不一致,编译器会认为这是两个不同的函数,没被调用的函数当然就被优化删除掉了

使用特权

评论回复
6
EAMCU|  楼主 | 2021-8-11 09:18 | 只看该作者
sonicll 发表于 2021-8-11 08:54
中断服务函数的名字,一定要和中断向量表里的函数名字一致,如果不一致,编译器会认为这是两个不同的函数 ...

我是一致的,原本和LL库里的startup_stm32f373xc.s里一样写的COMP1_2_IRQHandler
但是LL库多了下面这么一个东西
导致被编译成了COMP_IRQHandler,然后链接时被优化掉了
为了不改库文件,我只能把startup_stm32f373xc.s里的COMP1_2_IRQHandler手动改成COMP_IRQHandler
我看了cube库,里面的373、383没有比较器中断例程,估计官方库编写人员就没有发现这个问题

使用特权

评论回复
7
磨砂| | 2021-9-7 10:50 | 只看该作者
有中断源了吗

使用特权

评论回复
8
八层楼| | 2021-9-7 10:55 | 只看该作者
请问能进入其他中断吗

使用特权

评论回复
9
观海| | 2021-9-7 10:58 | 只看该作者
中断使能了没有

使用特权

评论回复
10
guanjiaer| | 2021-9-7 11:01 | 只看该作者
需要解除屏蔽吗?

使用特权

评论回复
11
heimaojingzhang| | 2021-9-7 11:06 | 只看该作者
是的 要吧相关的屏蔽解除

使用特权

评论回复
12
keaibukelian| | 2021-9-7 11:09 | 只看该作者
好像需要修改的地方比较多

使用特权

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

本版积分规则

38

主题

396

帖子

2

粉丝