如題,BLE使用SLEEP,不知道是程序跑飛了,還是沒有喚醒,串口沒有了輸出,打開了看門狗復(fù)位 WWDG_ResetCfg(ENABLE); 根本就沒用,低功耗模式不能使用看門狗嗎?
進入睡眠模式,主頻不工作,看門狗計數(shù)就停止了,喚醒后計數(shù)清0,在藍(lán)牙程序中將HAL_SLEEP設(shè)置為TRUE之后,由協(xié)議棧傳入喚醒時間,有任務(wù)的時候會喚醒工作,可以加個tmos任務(wù)執(zhí)行打印或者翻IO試試。
HAL_SLEEP設(shè)置為TRUE之后,藍(lán)牙反復(fù)斷開連接幾十次,就連不上了,像死機一樣
我們這邊使用官網(wǎng)例程,將HAL_SLEEP設(shè)置為TRUE,設(shè)置串口打印為串口0,使用571k demo板測試連接和通信是正常的,可以下載官網(wǎng)EVT測試下。
睡眠模式RTC的問題,我加上了GPIO喚醒,復(fù)現(xiàn)問題后,用GPIO喚醒后,能繼續(xù)運行
這單片機也是沒誰了,低功耗藍(lán)牙低功耗模式下不能用看門狗
沒有吧,開sleep也是可以用的,只是看門狗時鐘來源于高頻晶體,睡眠時高頻晶體停了,不用擔(dān)心會死機,喚醒了會自動喂狗,如果喚醒后程序卡住沒喂狗,看門狗會生效的。
問題是有時候RTC不執(zhí)行喚醒,醒不來,狗就沒用
RTC不能喚醒的話,建議你檢查下代碼,用最新的庫試試,不能喚醒是怎么判斷的,可以在睡眠函數(shù)中打印下協(xié)議棧傳入的睡眠時間,在喚醒后加個io翻轉(zhuǎn)試試,我板子都跑好久了,一切正常。
你好,你是用GPIO喚醒的?@不落氏花爺
是的啊,一般情況下用協(xié)議棧的RTC喚醒,自己想喚醒就用GPIO喚醒。
@不落氏花爺想問下,將HAL_SLEEP設(shè)置為TRUE之后,我自己的用戶任務(wù)需要在哪里暫停
?用戶任務(wù)暫停自行停止就可以了,注意任務(wù)放在TMOS里面處理。