查看: 7808|回复: 11

[已解决] LPC 1768 Deep Sleep mode 死了,心累了。

[复制链接]

该用户从未签到

74

主题

266

帖子

0

高级会员

Rank: 4

积分
747
最后登录
2023-5-24
发表于 2019-1-16 10:51:34 | 显示全部楼层 |阅读模式
搞了一周,啥也没搞出来。资料翻个底朝天也不知道问题出在哪了。
初始化
SCB->SCR = 0x00;
LPC_PMU->PCON |= PMU_PCON_SMFLAG | PMU_PCON_DSFLAG | PMU_PCON_PDFLAG | PMU_PCON_DPDFLAG;
用的LPCopen例程
/* Enter MCU Deep Sleep mode */
Chip_PMU_DeepSleepState(LPC_PMU);

RTC GPIO中断都唤醒不了,不知道是不是没唤醒还是唤醒跑飞了。

进入睡眠之前我把能唤醒的中断都关了,留下GPIO中断和RTC然后还是醒不来。
        NVIC_ClearPendingIRQ(CAN_IRQn);
        NVIC_DisableIRQ(CAN_IRQn);
        NVIC_ClearPendingIRQ(UART0_IRQn);
        NVIC_DisableIRQ(UART0_IRQn);
        NVIC_ClearPendingIRQ(UART1_IRQn);
        NVIC_DisableIRQ(UART1_IRQn);
        NVIC_ClearPendingIRQ(UART2_IRQn);
        NVIC_DisableIRQ(UART2_IRQn);
        NVIC_ClearPendingIRQ(UART3_IRQn);
        NVIC_DisableIRQ(UART3_IRQn);
        NVIC_ClearPendingIRQ(BOD_IRQn);
        NVIC_DisableIRQ(BOD_IRQn);
        NVIC_ClearPendingIRQ(USBActivity_IRQn);
        NVIC_DisableIRQ(USBActivity_IRQn);
        NVIC_ClearPendingIRQ(CANActivity_IRQn);
        NVIC_DisableIRQ(CANActivity_IRQn);
        NVIC_ClearPendingIRQ(ETHERNET_IRQn);
        NVIC_DisableIRQ(ETHERNET_IRQn);

不进入睡眠模式,RTC和GPIO中断都能正常进入。不知道还需要配置啥了。心很累。

最佳答案

就是说例程中进入sleep并被唤醒是正常的,但是进入deep sleep没问题,但是无法被唤醒? 是这样吗,你有对例程有做过什么修改吗?
QQ图片20190116105001.png
QQ图片20190116105031.png
QQ图片20190116105105.png
回复

使用道具 举报

该用户从未签到

74

主题

266

帖子

0

高级会员

Rank: 4

积分
747
最后登录
2023-5-24
 楼主| 发表于 2019-1-16 10:58:20 | 显示全部楼层
我在RTC中断和GPIO中断里面添加了LPCopen的时钟初始化
        Board_SystemInit();
        SystemCoreClockUpdate();
  Board_Init();        /* Initialize LEDs */
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24883
最后登录
2025-7-20
发表于 2019-1-16 13:30:41 | 显示全部楼层
那你现在的问题到底是不能进入deep sleep呢还是进入后,无法被唤醒呢?
回复 支持 反对

使用道具 举报

该用户从未签到

74

主题

266

帖子

0

高级会员

Rank: 4

积分
747
最后登录
2023-5-24
 楼主| 发表于 2019-1-16 13:38:18 | 显示全部楼层
小恩GG 发表于 2019-1-16 13:30
那你现在的问题到底是不能进入deep sleep呢还是进入后,无法被唤醒呢?

能进入sleep,是进入之后无法唤醒。
回复 支持 反对

使用道具 举报

该用户从未签到

74

主题

266

帖子

0

高级会员

Rank: 4

积分
747
最后登录
2023-5-24
 楼主| 发表于 2019-1-16 14:53:03 | 显示全部楼层
小恩GG 发表于 2019-1-16 13:30
那你现在的问题到底是不能进入deep sleep呢还是进入后,无法被唤醒呢?

我用LPCopen例程测试一下,发现官方例程在deep sleep起不来了。硬件还有哪些东西会影响呢?
QQ图片20190116145122.png
回复 支持 反对

使用道具 举报

该用户从未签到

74

主题

266

帖子

0

高级会员

Rank: 4

积分
747
最后登录
2023-5-24
 楼主| 发表于 2019-1-16 14:58:11 | 显示全部楼层
xiaoming1021 发表于 2019-1-16 14:53
我用LPCopen例程测试一下,发现官方例程在deep sleep起不来了。硬件还有哪些东西会影响呢? ...

官方给的例程在进入RTC中断后也没有初始化时钟,有点蒙。
回复 支持 反对

使用道具 举报

该用户从未签到

74

主题

266

帖子

0

高级会员

Rank: 4

积分
747
最后登录
2023-5-24
 楼主| 发表于 2019-1-16 15:18:14 | 显示全部楼层
xiaoming1021 发表于 2019-1-16 14:58
官方给的例程在进入RTC中断后也没有初始化时钟,有点蒙。

我测试了,sleep唤醒是没问题的。
回复 支持 反对

使用道具 举报

该用户从未签到

74

主题

266

帖子

0

高级会员

Rank: 4

积分
747
最后登录
2023-5-24
 楼主| 发表于 2019-1-16 15:35:34 | 显示全部楼层
小恩GG 发表于 2019-1-16 13:30
那你现在的问题到底是不能进入deep sleep呢还是进入后,无法被唤醒呢?

唤醒后要重新配置 PLL 和时钟分频器.我这样Board_SetupClocking();重新配置时钟是不是不行啊。
回复 支持 反对

使用道具 举报

该用户从未签到

712

主题

6371

帖子

0

超级版主

Rank: 8Rank: 8

积分
24883
最后登录
2025-7-20
发表于 2019-1-17 10:19:21 | 显示全部楼层
就是说例程中进入sleep并被唤醒是正常的,但是进入deep sleep没问题,但是无法被唤醒?
是这样吗,你有对例程有做过什么修改吗?
回复 支持 反对

使用道具 举报

该用户从未签到

74

主题

266

帖子

0

高级会员

Rank: 4

积分
747
最后登录
2023-5-24
 楼主| 发表于 2019-1-17 10:43:58 | 显示全部楼层
小恩GG 发表于 2019-1-17 10:19
就是说例程中进入sleep并被唤醒是正常的,但是进入deep sleep没问题,但是无法被唤醒?
是这样吗,你有对例 ...

我没有更改例程,下载完直接下载到程序。例程本身应该有问题。深度睡眠唤醒后应该重新初始化PLL和分频器。但是例程没有。lpcopen_2_10_keil_iar_nxp_lpcxpresso_1769
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-21 03:00 , Processed in 0.109023 second(s), 32 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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