CH582低功耗問題

1.使用的是?BackupUpgrade_OTA?例程

2.預(yù)編譯把?HAL_SLEEP=1,開啟了睡眠?

3.初始化調(diào)用了下面的代碼

void?HAL_SleepInit(void)
{
#if(defined(HAL_SLEEP))?&&?(HAL_SLEEP?==?TRUE)
????sys_safe_access_enable();
????R8_SLP_WAKE_CTRL?|=?RB_SLP_RTC_WAKE;?//?RTC喚醒
????sys_safe_access_enable();
????R8_RTC_MODE_CTRL?|=?RB_RTC_TRIG_EN;??//?觸發(fā)模式
????sys_safe_access_disable();??????????????//
????PFIC_EnableIRQ(RTC_IRQn);
#endif
}

4.HAL_SLEEP=1對(duì)應(yīng)的是哪一種模式?

e469a2caca680eada69ab96130ecddd8.png

5.HAL_SLEEP=1實(shí)測(cè)發(fā)現(xiàn)藍(lán)牙一直有在廣播,手機(jī)連接收發(fā)也正常,TMOS的定時(shí)事件也有在運(yùn)行,但是串口無法接收(中斷),感覺是運(yùn)行的是空閑模式



1.當(dāng)我想接收串口數(shù)據(jù)時(shí),如何停止休眠? 2.數(shù)據(jù)接收完了,如何恢復(fù)休眠?

串口數(shù)據(jù)是一問一答的,所以不需要那種IO觸發(fā)喚醒的方式


HAL_SLEEP=1對(duì)應(yīng)的是睡眠模式

系統(tǒng)的休眠是由協(xié)議棧管理的,在進(jìn)行休眠時(shí)無法進(jìn)行數(shù)據(jù)接收,因此會(huì)收不到數(shù)據(jù)。

可以參考這篇博客CH582芯片Sleep模式串口喚醒接收數(shù)據(jù) - SweetTea_lllpc - 博客園 (cnblogs.com)


我的應(yīng)用需要每隔120s執(zhí)行一個(gè)動(dòng)作,開了一個(gè)定時(shí)器來記秒數(shù)

但是開啟休眠HAL_SLEEP=1后,定時(shí)器中斷就沒有執(zhí)行了,有什么辦法解決嗎?

TMR1_TimerInit(FREQ_SYS);//設(shè)置定時(shí)時(shí)間1s
TMR1_ITCfg(ENABLE,TMR0_3_IT_CYC_END);//開啟中斷
PFIC_EnableIRQ(TMR1_IRQn);




void TMR1_IRQHandler(void) //TMR1定時(shí)中斷,
{
? ?static uint32_t count=0;

? ?if(TMR1_GetITFlag(TMR0_3_IT_CYC_END))
? ?{
? ? ? ?count++;
? ?} ? ?
}



您好,HAL_SLEEP配置的是sleep等級(jí)的休眠,休眠期間主頻是停掉的,會(huì)影響定時(shí)器的工作。

“每隔120s執(zhí)行一個(gè)動(dòng)作”的功能,可以直接使用TMOS系統(tǒng),配置每120s循環(huán)執(zhí)行事件,在休眠中也可以喚醒MCU并執(zhí)行邏輯。


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频