STM32
直播中

刘慧

7年用户 1727经验值
私信 关注
[问答]

STM8L进入halt休眠后外中断唤醒死机的原因?

首先说明一下电路上,我设置PB3接了按键并设置为外中断唤醒。
在休眠前单单配置PB3口
PB_DDR  = 0xf7;
PB_CR1 |= 0x08;
PB_CR2 |= 0x08;
这个时候进入休眠后按键按下每次都可以正常启动
但是一旦休眠前对PB的其他引脚也进行配置就会出现按键第一次按下后能正常启动,但是当再次休眠后,按键按下去就不再能唤醒单片机了,只能上电重启
这是什么情况引起的

回帖(1)

硕达科讯

2024-5-13 17:58:19
STM8L进入halt休眠后外中断唤醒死机的原因可能有以下几点:

1. 配置问题:在休眠前对PB的其他引脚进行配置可能导致寄存器状态发生变化,从而影响外中断的触发。请确保在休眠前正确配置所有相关寄存器。

2. 电源问题:在休眠状态下,单片机的功耗会降低,如果电源供应不稳定,可能导致单片机无法正常唤醒。请检查电源电路是否稳定。

3. 时钟问题:在休眠状态下,单片机的时钟可能会受到影响。请确保在唤醒后,时钟系统能够正常工作。

4. 唤醒源问题:请检查是否正确设置了唤醒源,例如,是否正确设置了PB3的中断优先级和中断使能。

5. 软件问题:请检查程序中的中断服务函数是否正确处理了唤醒过程,以及是否有其他可能导致死机的代码。

为了解决这个问题,你可以尝试以下步骤:

1. 仔细检查PB端口的配置,确保所有相关寄存器都正确设置。

2. 检查电源电路,确保电源供应稳定。

3. 在唤醒后,检查时钟系统是否正常工作。

4. 确保唤醒源设置正确,包括中断优先级和中断使能。

5. 检查中断服务函数,确保它正确处理了唤醒过程,并且没有其他可能导致死机的代码。

6. 如果问题仍然存在,尝试使用其他唤醒源,例如定时器中断,以排除是PB3端口的问题。

7. 如果可能,尝试使用其他STM8L单片机进行测试,以确定问题是否与特定单片机有关。

通过以上步骤,你应该能够找到导致STM8L进入halt休眠后外中断唤醒死机的原因,并采取相应的措施解决问题。
举报

更多回帖

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