在线时间0 小时
UID2042808
ST金币0
蝴蝶豆0
注册时间2013-9-18
新手上路
- 最后登录
- 1970-1-1
|
a0a.1 0b0c
某客户工程师在某型号新产品的设计中,使用了STM32F103XXT6。据其工程师讲述:他们在设计中,使用了一个外部中断,用来检测某事件的发生,从而唤醒低功耗模式下的 STM32。对应于该中断输入,有一中断服务程序,内容如表(一)所示。在实测中发现偶尔会发生在有该外部中断输入时 STM32 并未回到正常的运行状态的情况。测量此时 STM32 的功耗,发现其功耗明显增大,说明已从低功耗唤醒。使用调试工具调试,发现当出现该现象时,程序停留在表(一)所示的中断服务程序中,不能退出。进一步跟踪,发现“行(1)”的判断不能通过。进入函数 EXTI_GetITStatus 进一步检查,发现该函数如表(二)。继续跟踪,发现“行(2)”的判断不能通过,而原因是上一行中的 EXTI-> IMR&EXTI_Line 值为‘0’,也就是该中断使能位没有被打开。讲述至此,其工程师一再重复着一句话“为什么中断使能位关闭了,还能进入中断服务程序…”。再三安慰不能使其平静,或许他真的崩溃了。
问题详细描述以及ST官方解答见文档:
进入了已屏蔽的中断.pdf
(227.48 KB, 下载次数: 151)
|
|