用的是BLE_PHY例程。有沒有這樣的一種機制:
通過藍牙指令讓CH睡眠。(這個已經實現)
再次通過藍牙數據喚醒CH
第二步驟有沒有可參考的程序呢?
目前我能想到的就是利用RTC,定時喚醒,然后收幾個BLE包,判斷是否繼續(xù)睡。但是不知道該采用哪種睡眠能夠最大程度的降低功耗。目前試了幾個,效果不是特別理想。
用的是BLE_PHY例程。有沒有這樣的一種機制:
通過藍牙指令讓CH睡眠。(這個已經實現)
再次通過藍牙數據喚醒CH
第二步驟有沒有可參考的程序呢?
目前我能想到的就是利用RTC,定時喚醒,然后收幾個BLE包,判斷是否繼續(xù)睡。但是不知道該采用哪種睡眠能夠最大程度的降低功耗。目前試了幾個,效果不是特別理想。
CH573EVT包中沒有BLE_PHY這個例程,用的是RF_PHY例程吧?
32M主頻在休眠期間是停止工作的,而2.4G頻段的信號依賴32M晶振產生,故2.4GRF的接收功能,在sleep休眠期間是關閉的.目前只有“先喚醒再收包”這個邏輯可以用來在休眠后接收2.4GRF信號。“利用RTC,定時喚醒,然后收幾個BLE包,判斷是否繼續(xù)睡”或者用GPIO喚醒后再去開RF收包,一個道理。
“采用哪種睡眠能夠最大程度的降低功耗”使能HAL_SLEEP后的sleep休眠,是次最低功耗了;shutdown休眠是最低功耗,不過喚醒后MCU會復位。
功耗不僅與休眠等級有關,與喚醒頻次、喚醒后的工作時長關系更為密切。可以監(jiān)控MCU的工作時長,盡量壓縮。