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