问答

汇集网友智慧,解决技术难题

地瓜土豆

TA的家园币:10  

  • GD32F105进入深度睡眠后,RTC中断不能正常运行。

    GD32F105进入深度睡眠后,RTC中断不能正常运行。常规模式下是可以产生中断的。我想深度睡眠之后定时唤醒,但是深度睡眠之后,RTC中断不能相应。一直都在深度睡眠模式,退不出来。求大佬解惑。谢谢!以下是我的代码。voidrtc_conf(void){nvic_irq_enable(RTC_IRQn,1,4);//中断优先级rcu_periph_clock_enable(RCU_BKPI);//开启时钟后备寄存器rcu_periph_clock_enable(RCU_PMU);pmu_backup_write_enable();//允许访问后备寄存器bkp_deinit();//反初始化//rcu_osci_on(RCU_LXTAL);//rcu_osci_stab_wait(RCU_LXTAL);//rcu_rtc_clock_config(RCU_RTCSRC_LXTAL);rcu_osci_on(RCU_IRC40K);//使能低速慢时钟rcu_osci_stab_wait(RCU_IRC40K);//等待低速慢时钟稳定rcu_rtc_clock_config(RCU_RTCSRC_IRC40K);//选择低速慢时钟源rcu_periph_clock_enable(RCU_RTC);//使能RTCrtc_register_sync_wait();//等待RTC寄存器同步rtc_lwoff_wait();//等待RTC寄存器上的最后一次写入操作完成rtc_interrupt_enable(RTC_INT_SECOND);//使能秒中断rtc_lwoff_wait();//等待RTC寄存器上的最后一次写入操作完成rtc_prescaler_set(32767);rtc_lwoff_wait();}voidRTC_IRQHandler(void){if(rtc_flag_get(RTC_FLAG_SECOND)!=RESET){Rtc_Time.s++;SleepS_Rtc++;rtc_flag_clear(RTC_FLAG_SECOND);}}voidSleep_Wdog(longsleep_s){floatcar_v=0;SleepS_Rtc=0;Rtc_Time.s=0;while(SleepS_Rtc

    ck RTC gd32f105 rc BLE ck

    2021-05-28 0