在原代碼的基礎(chǔ)上 開啟休眠??
HAL_SLEEP=TRUE
開啟前的adc采集數(shù)據(jù):
開啟后的adc采集數(shù)據(jù)
請問這個怎么解決呢?
在原代碼的基礎(chǔ)上 開啟休眠??
HAL_SLEEP=TRUE
開啟前的adc采集數(shù)據(jù):
開啟后的adc采集數(shù)據(jù)
請問這個怎么解決呢?
產(chǎn)品藍牙功能需要一直開啟。
看了帖子,貌似只能 設(shè)置 HAL_SLEEP = TRUE 來讓系統(tǒng)自動休眠。 不能手動進行休眠控制。
請問還有什么細節(jié)可以優(yōu)化功耗嗎? 功耗最低能做到多少呢?
ADC+BLE的測量可以通過TMOS任務(wù)完成,需要在每次采集之前重新選擇一下通道。
開啟休眠控制可以通過開始HAL_SLEEP完成,同時可以使能DCDC。藍牙的功耗需要進一步降低可以對連接間隔和廣播間隔進行處理,將這兩個參數(shù)拉大一些,功耗會相應(yīng)的變小。
這里提供間隔的講解,可以參考一下:
BLE廣播間隔和連接間隔(CH573) - SweetTea_lllpc - 博客園 (cnblogs.com)
每次ADC采集都重新選擇adc通道, adc讀數(shù)正常了。
開啟 HAL_SLEEP后。 我還有一個 串口接收中斷 無法觸發(fā)。 這個怎么辦呢
開啟睡眠后的喚醒方式只有兩種,RTC喚醒和GPIO中斷喚醒,因此需要先將串口切換為GPIO進行喚醒再接收數(shù)據(jù)。
這里提供一個博客參考:
CH579 CH573 CH582 串口切換GPIO睡眠喚醒操作 - debugdabiaoge - 博客園 (cnblogs.com)
我沒有主動進入休眠。 只開啟了?HAL_SLEEP = TRUE
我的程序里面有一個串口接收中斷 用來通訊的。 調(diào)試正常。
在開啟??HAL_SLEEP = TRUE? 后, 接收中斷就無法接收到數(shù)據(jù)了。??
我應(yīng)該怎么處理???
沒有主動進休眠,開啟HAL_SLEEP = TRUE 也是進休眠的,休眠后只有兩種喚醒方式,參考上面的回答并按照博客里的操作即可。
串口通過三極管接在GPIO上就解決了
喚醒就解決了