STM32
直播中

李霞

8年用户 1341经验值
私信 关注
[问答]

STM8进入halt模式后由EXTI中断唤醒,程序无法继续正常运行下去的原因?

大家好,我现在有一个问题请教:
1. 我的STM8S103K3在执行完相关任务后进入halt模式,在进入之前我设置了几个EXti中断
2. 中断服务函数中没有任何的操作,只起一个唤醒系统的功能3. 进入halt模式前,FLASH配置为HALT模式下继续运行
3. 配置完中断后开启了总中断允许的
现象:进入halt后,已配置EXTI中断对应的外部引脚出现上升沿或下降沿,仿真发现能够进入中断服务函数并停在断点位置,可是出了中断服务函数后,程序无法继续正常运行下去。必须等到下一次中断,即连续两次中断后,程序才会继续正常运行下去,一次中断只能唤醒,但唤醒后却存在问题?请各位大神帮忙解答一下,万分感谢。


回帖(1)

邹俩珍

2024-5-15 16:47:17
您好!根据您的描述,STM8S103K3在进入halt模式后由EXTI中断唤醒,但程序无法继续正常运行。以下是一些可能的原因和解决方案:

1. 确保EXTI中断配置正确:检查您是否正确配置了EXTI中断,包括中断源、触发方式(上升沿、下降沿或双边沿)等。

2. 检查中断优先级:确保EXTI中断的优先级设置正确,以便在触发时能够正确响应。

3. 确保中断服务函数中唤醒系统的代码正确:在中断服务函数中,您需要确保执行了唤醒系统的指令,例如使用`__asm("wfi")`或`__end()`。

4. 检查程序中的其他中断:确保程序中没有其他中断可能会影响EXTI中断的正常工作。

5. 检查HALF模式下的FLASH配置:您提到已经配置了FLASH以在HALF模式下继续运行,但请确保这个配置是正确的。

6. 检查时钟配置:确保系统时钟配置正确,以确保在唤醒后能够正常运行。

7. 检查电源管理:确保电源管理设置正确,以确保在唤醒后系统能够正常供电。

8. 调试和仿真:使用调试工具(如ST-LINK)逐步执行程序,观察在中断服务函数之后程序的状态,以确定问题所在。

9. 检查硬件连接:确保外部引脚与硬件连接正确,没有短路或断路等问题。

10. 更新固件库:如果您使用的是较旧的固件库,尝试更新到最新版本,以确保所有功能都能正常工作。

希望这些建议能帮助您解决问题。如果问题仍然存在,请提供更多详细信息,以便我们能够更好地帮助您。
举报

更多回帖

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