WCH沁恒单片机
直播中

笑尽往事

9年用户 906经验值
擅长:可编程逻辑 电源/新能源
私信 关注
[问答]

CH571 GPIO中断,功耗有异常怎么解决?

RF_PHY的工程,已经打了Sleep



  
  有时按下电流是这样。

  
GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_PD);
GPIOA_ITModeCfg(GPIO_Pin_14, GPIO_ITMode_RiseEdge);
PFIC_EnableIRQ(GPIO_A_IRQn);
PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Edge_LongDelay);
//PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Edge_ShortDelay); shortDelay 会一直复位。
我的工程开了一个1S的事件,感觉这个外部中断就是有外部中断来了之后,一直需要idle,等待了其他唤醒事件后才运行相应的代码。

如果我删除了

u32 CH57X_LowPower(u32 time)
...
// LowPower_Idle();//删除了这段代码,也不会出现等待基本唤醒才运行的

会一直复位。我的工程开了一个1S的事件,感觉这个外部中断就是有外部中断来了之后,一直需要idle,等待了其他唤醒事件后才运行相应的代码。
如果我删除了
u32 CH57X_LowPower(u32 time)...//        LowPower_Idle();//删除了这段代码,也不会出现等待基本唤醒才运行的...

  
  

这里是外部中断的函数,帮我看一下有什么问题,为什么中断还是进入了Idle,需要等待到RTC唤醒都退出Idle?
  


回帖(1)

杨明

2022-8-25 09:31:00
RF_PHY的工程,已经打了Sleep



  
  有时按下电流是这样。

  
GPIOA_ModeCfg(GPIO_Pin_14, GPIO_ModeIN_PD);
GPIOA_ITModeCfg(GPIO_Pin_14, GPIO_ITMode_RiseEdge);
PFIC_EnableIRQ(GPIO_A_IRQn);
PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Edge_LongDelay);
//PWR_PeriphWakeUpCfg(ENABLE, RB_SLP_GPIO_WAKE, Edge_ShortDelay); shortDelay 会一直复位。
我的工程开了一个1S的事件,感觉这个外部中断就是有外部中断来了之后,一直需要idle,等待了其他唤醒事件后才运行相应的代码。

如果我删除了

u32 CH57X_LowPower(u32 time)
...
// LowPower_Idle();//删除了这段代码,也不会出现等待基本唤醒才运行的

会一直复位。我的工程开了一个1S的事件,感觉这个外部中断就是有外部中断来了之后,一直需要idle,等待了其他唤醒事件后才运行相应的代码。
如果我删除了
u32 CH57X_LowPower(u32 time)...//        LowPower_Idle();//删除了这段代码,也不会出现等待基本唤醒才运行的...

  
  

这里是外部中断的函数,帮我看一下有什么问题,为什么中断还是进入了Idle,需要等待到RTC唤醒都退出Idle?
  


举报

更多回帖

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