• 已解决 73482 个问题
  • 已帮助 5993 位优秀工程师

STM32睡眠模式中断关闭后仍然有动作是怎么回事

846ed4e9e9f1a3e1 2018-07-17 浏览量:1675

做了个产品,待机后进入sleep模式,可以用外部中断唤醒。使用的中断全部打开的时候正常,后来设置进入sleep模式前关闭了其中的10-15外部中断,发现10-15中断有动作仍然能唤醒单片机,但是单片机程序没有继续执行,不知道死到哪里去了。现在sleep模式调试不了,有谁知道是怎么回事?


补充一下,我用了外部中断0/1/13/14/15。这几个中断全开没问题,进入sleep前关了13/14/15中断,全速运行进入sleep,则13/14/15中断仍能唤醒单片机,单步运行进入sleep,13/14/15不能唤醒,但0/1也不能唤醒了。

0 0 收起

我来回答

上传资料:
选择文件 文件大小不超过15M(格式支持:doc、ppt、xls、pdf、zip、rar、txt)
最佳答案
  • 这张图我贴了好多次了~(吐槽一下)

    STM32进入Sleep Mode的时候只有CPU内核休眠,其他外设还在跑着的(外设时钟还在),而且外设可以唤醒CPU,假设进入了Sleep模式,定时器等中断也可以唤醒Sleep模式。

    如你所描述,可以试一下Stop模式,这种模式下,高速时钟暂停(其他用到高速时钟的外设也会被暂停),外部中断可以唤醒。

    微信截图_20180717093948.png

    • 发布于 2018-07-17
    • 举报
    • 评论 0
    • 0
    • 0

其他答案 数量:7
  • 可以在中断中设置一个GPIO的LED灯啊,或是在主循环中设置一个LED灯,看看程序在哪里运行出问题的
    • 发布于2018-07-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 应该是被外设给唤醒了
    • 发布于2018-07-17
    • 举报
    • 评论 0
    • 0
    • 0

  • 要看一下是不是睡眠模式被唤醒了导致了误动作
    • 发布于2018-07-23
    • 举报
    • 评论 0
    • 0
    • 0

  • 这个应该是被唤醒了然后执行了动作后再进入了睡眠模式
    • 发布于2018-07-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 你先试一下程序里面不去使能10-15外部中断,看是否仍有唤醒功能,感觉是你程序里面哪里配置有问题
    • 发布于2018-07-25
    • 举报
    • 评论 0
    • 0
    • 0

  • 单片机即使进入睡眠模式也可以被外部中断唤醒的。不过楼主说唤醒之后程序跑飞了,那可以加个printf判断是哪里跑飞的。另外,不要用单步调试的结果来当作是实际运行结果,这个单步运行结果是没有任何意义的。

    • 发布于2018-07-29
    • 举报
    • 评论 0
    • 0
    • 0

相关问题

问题达人换一批

STM32睡眠模式中断关闭后仍然有动作是怎么回事