查看: 4372|回复: 1

请问睡眠唤醒后怎样读取唤醒源

[复制链接]

13

主题

23

帖子

221

积分

高级工程师

Rank: 3Rank: 3

积分
221
发表于 2021-6-16 15:37:32 | 显示全部楼层 |阅读模式
开启了lptim32定时中断和IO中断,但是不管哪个中断唤醒后读取唤醒源总是得到0x10000000,
试着把读取唤醒源放到定时中断isr里和IO中断isr里,也是读到0x10000000,
看手册0x10000000是rtc中断,把rtc初始化屏蔽了也是一样的结果。
请问有什么注意的地方吗?

       //DEEPSLEEP睡眠
        MF_PMU_Init(FL_PMU_SLEEP_MODE_DEEP);
        FL_PMU_SetLowPowerMode(PMU,FL_PMU_POWER_MODE_SLEEP_OR_DEEPSLEEP);        
        __WFI();   

        //读取唤醒源
        uint32_t wkup;
        wkup = *(uint32_t *)0x40000108;

        //是否按键IO中断唤醒
        //if (FL_PMU_IsActiveFlag_WakeupEXTI(PMU))    //用这个库函数也一样
        if (wkup & ((uint32_t)1 << 24))

回复

使用道具 举报

154

主题

846

帖子

4624

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4624
发表于 2021-6-17 10:17:59 | 显示全部楼层
唤醒后会直接进入中断函数。然后才会执行休眠指令后的程序。请参考 pmu-deepsleep唤醒例程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表