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