關(guān)于STM32的低功耗詳細解析請在STM32低功耗模式解讀中查看,在里面講到當STM32在停止模式時,芯片1.8V區(qū)域時鐘別關(guān)閉,HSI,HSE時鐘也被關(guān)閉,當某個使能的中斷或事件發(fā)生后,STM32從停止模式退出,此時STM32默認的時鐘為HSI,因此若要讓STM32回到運行模式并正常工作一段時間,必須要注意STM32的時鐘問題,按照實際情況選擇是否將系統(tǒng)時鐘恢復到停止模式前的時鐘配置。
測試采用芯片為stm32fo30,HSI時鐘頻率為8M,系統(tǒng)頻率為48M。PLL倍頻為12,輸入為HSI/2。
測試一LED點亮時間的影響
采用systick定時器定時,按鍵按下后LED點亮,定時器開始5s定時。定時到后LED熄滅。
正常模式下,LED燈點亮5S。
從停止模式喚醒后不恢復系統(tǒng)時鐘,計時30sLED燈才熄滅。
分析:系統(tǒng)頻率是HSI頻率的6倍,因此LED燈點亮時間也滿足6倍關(guān)系。
從停止模式喚醒后不恢復系統(tǒng)時鐘,計時30sLED燈才熄滅。
從停止模式喚醒后恢復系統(tǒng)時鐘,計時5LED燈熄滅。
測試二,串口
正常模式下串口正常收發(fā)。
從停止模式喚醒后不恢復系統(tǒng)時鐘,串口收到一堆亂碼,正常數(shù)據(jù)不能被接收。原因:
串口時鐘設(shè)為系統(tǒng)時鐘,導致波特率不匹配。
從停止模式喚醒后恢復系統(tǒng)時鐘,串口接收發(fā)送正常。
總結(jié):STM32從停止模式喚醒后要特別注意時鐘恢復配置問題,以防出現(xiàn)各種小問題。