国产精品久久久久影院,成人午夜福利视频,国产精品久久久久高潮,国产精品 欧美 亚洲 制服,国产精品白浆无码流出

STM32單片機(jī)退出停止模式時(shí)出現(xiàn)死機(jī)現(xiàn)象的原因分析

發(fā)布者:Blissful444最新更新時(shí)間:2024-05-30 來源: elecfans關(guān)鍵字:STM32  單片機(jī)  死機(jī)現(xiàn)象 手機(jī)看文章 掃描二維碼
隨時(shí)隨地手機(jī)看文章

根據(jù)《STM32中文參考手冊》描述,STM32的低功耗模式有三種:睡眠模式,停止模式,待機(jī)模式。(有些資料說其實(shí)只有兩種模式,不存在睡眠模式一說)。其中待機(jī)模式可實(shí)現(xiàn)系統(tǒng)的最低功耗,所以本來想采用該模式。但是《STM32中文參考手冊》提到從待機(jī)模式喚醒后的代碼執(zhí)行等同于復(fù)位后的執(zhí)行(采樣啟動模式引腳、讀取復(fù)位向量等),板子接了屏,再快再快也需要時(shí)間去加載界面,所以速度還是慢了。之后采用嘗試采用停止模式,圖1為停止模式的進(jìn)入和退出方法。

STM32單片機(jī)退出停止模式時(shí)出現(xiàn)死機(jī)現(xiàn)象的原因分析

圖1

根據(jù)手冊和開發(fā)板給的源碼,直接實(shí)現(xiàn)停止模式,但是發(fā)現(xiàn)退出時(shí)就發(fā)生死機(jī)現(xiàn)象,并沒有進(jìn)入恢復(fù)正常,只執(zhí)行了中斷函數(shù)中一個(gè)或者兩個(gè)語句(是隨機(jī)的)。

看例程,度娘等走了一圈,表現(xiàn)出來的原因應(yīng)該是這樣的,由于THUMB指令不支持匯編內(nèi)聯(lián),所以采用如下方法實(shí)現(xiàn)執(zhí)行匯編指令WFI,創(chuàng)建了一個(gè)WFI_SET()函數(shù),其函數(shù)原型:

__asm void WFI_SET(void)

{

WFI;

}

表現(xiàn)出來的原因是:被Sys_Sleep()函數(shù)調(diào)用的時(shí)候,并沒有在編譯時(shí)把WFI_SET()的內(nèi)容inline到Sys_Sleep()函數(shù)里面去,而是一個(gè)普通的函數(shù)在運(yùn)行時(shí)被調(diào)用,出現(xiàn)了死機(jī)現(xiàn)象。后來將WFI_SET()函數(shù)修改為:

__asm void __inline WFI_SET(void)

{

WFI;

}

問題解決。

但根本原因是不是跳出WFI_SET()函數(shù)出的錯(cuò),還是其他原因,后續(xù)進(jìn)一步確認(rèn)。


關(guān)鍵字:STM32  單片機(jī)  死機(jī)現(xiàn)象 引用地址:STM32單片機(jī)退出停止模式時(shí)出現(xiàn)死機(jī)現(xiàn)象的原因分析

上一篇:采用STM32F103VBT6處理器實(shí)現(xiàn)水下無線能量傳輸系統(tǒng)的設(shè)計(jì)
下一篇:基于STM32F0的GPS模塊,帶CAN通訊+IST8310磁力計(jì)

推薦閱讀最新更新時(shí)間:2025-07-02 21:59

入門單片機(jī)stm32定時(shí)器詳解
一、基本定時(shí)器介紹 在STM32中,基本定時(shí)器有TIM6、TIM7等。基本定時(shí)器主要包含時(shí)基單元,提供16位的計(jì)數(shù),能計(jì)數(shù)0~65535?;径〞r(shí)器除了計(jì)數(shù)功能以外,還能輸出給DAC模塊一個(gè)TRGO信號?;径〞r(shí)器框圖如下: 二、時(shí)基單元介紹 STM32的所有定時(shí)器都具備時(shí)基單元,時(shí)基單元的功能就是簡單的計(jì)數(shù),即計(jì)數(shù)時(shí)鐘源TMxCLK的脈沖個(gè)數(shù),這個(gè)時(shí)鐘源來至APB1總線。高級和通用定時(shí)器還可以使用其他的時(shí)鐘源進(jìn)行計(jì)數(shù),在高級定時(shí)器和通用定時(shí)器中會詳細(xì)介紹。在基本定時(shí)器框架中可知時(shí)基單元包含如下三個(gè)部分: 1.ARR 自動重裝載寄存器 2.CNT 計(jì)數(shù)器 3.PSC 預(yù)分頻器 基本定時(shí)器的定時(shí)(計(jì)數(shù))功能配置如下
[單片機(jī)]
都是32位MCU,ESP32、GD32、STM32有什么區(qū)別
01 三款MCU簡介 STM32:意法半導(dǎo)體在 2007 年 6 月 11 日發(fā)布的產(chǎn)品,32位單片機(jī)(不多介紹了,懂得都懂)。 GD32:兆易創(chuàng)新 2013 年發(fā)布的產(chǎn)品,在芯片開發(fā)、配置、命名上基本模仿 STM32,甚至 GPIO 和 STM32 都是 pin to pin 的,封裝不改焊上去直接用。有時(shí)候 STM32 的源碼不修改,重新編譯燒寫到 GD32 上就可以跑。當(dāng)然也有很多不同,比如串口驅(qū)動、USB 、庫文件等。 ESP32:樂鑫公司 2017 年開發(fā)的產(chǎn)品,和 STM32、GD32 不同,ESP32 主要面向物聯(lián)網(wǎng)領(lǐng)域,支持功能很多,但引出 GPIO pin 腳很少,因此大多數(shù) GPIO 都有很多復(fù)用功能。出廠
[單片機(jī)]
都是32位<font color='red'>MCU</font>,ESP32、GD32、<font color='red'>STM32</font>有什么區(qū)別
“看門狗“VS“打狗棒”,誰勝誰負(fù)?(STM32篇)—MCU抗干擾實(shí)驗(yàn)系列專題(3)
在上兩期文章和視頻中,為了公平起見,所有的MCU使用的是同一個(gè)工程程序,(不同的MCU,時(shí)鐘和GPIO的配置略有不同,使用宏定義區(qū)分MCU),除了使用滴答時(shí)鐘和基本GPIO操作外,沒有任何抗干擾手段,全靠MCU內(nèi)部自身的抗干擾能力進(jìn)行的測試。結(jié)果,只有芯源CW32MCU沒有徹底死機(jī)外,其它均有死機(jī)現(xiàn)象。 這種死機(jī)現(xiàn)象,在我們實(shí)際開發(fā)產(chǎn)品時(shí),是禁止發(fā)生的。為了對付這種干擾,除了硬件上有些技術(shù)對策,那軟件上又有些什么呢? 當(dāng)然是我們最熟悉的看門狗了?!翱撮T狗”這個(gè)神器在“古老的年代”51時(shí)期,那是沒有的,需要在外面加一個(gè)“昂貴”的芯片來實(shí)現(xiàn)。當(dāng)然,現(xiàn)在新時(shí)代,所有的ARM MCU基本上都標(biāo)配了看門狗外設(shè)。 看門狗是啥,我們來看一下
[單片機(jī)]
“看門狗“VS“打狗棒”,誰勝誰負(fù)?(<font color='red'>STM32</font>篇)—<font color='red'>MCU</font>抗干擾實(shí)驗(yàn)系列專題(3)
如何采用STM32單片機(jī)讀取可變長度數(shù)據(jù)到內(nèi)存
首先要解決DMA怎么知道要接收的數(shù)據(jù)何時(shí)開始,何時(shí)結(jié)束的問題。而且每次傳輸完數(shù)據(jù),要改變下一次數(shù)據(jù)長度。 如果把DMA設(shè)成循環(huán)模式肯定是不行的,所以把DMA設(shè)置成正常模式。 STM32的串口有監(jiān)測總線是否處于空閑的功能,我們可以使用這個(gè)功能,當(dāng)數(shù)據(jù)傳輸完總線變成空閑狀態(tài)時(shí)產(chǎn)生中斷,來對收到的數(shù)據(jù)進(jìn)行處理。因此整個(gè)過程就變成:當(dāng)一堆數(shù)據(jù)開始傳輸,DMA默默地把數(shù)據(jù)搬運(yùn)到內(nèi)存中,當(dāng)這堆數(shù)據(jù)傳輸完成,總線變成空閑狀態(tài)時(shí),馬上產(chǎn)生中斷,在中斷服務(wù)程序中去做相應(yīng)處理。 初始化程序: #defineDMA_Rec_Len10//數(shù)據(jù)緩沖區(qū)大小 u8value[DMA_Rec_Len]; voiduart_init_DMA_IN(u
[單片機(jī)]
如何采用<font color='red'>STM32</font><font color='red'>單片機(jī)</font>讀取可變長度數(shù)據(jù)到內(nèi)存
求一種STM32單片機(jī)玩轉(zhuǎn)TFTLCD彩屏設(shè)計(jì)方案
一、功能簡介 本項(xiàng)目使用Proteus8.12仿真STM32單片機(jī)控制器,使用ST7735R彩屏模塊等。 主要功能如下: (1)漢字字符顯示; (2)2D圖形顯示; (3)圖片顯示; 二、軟件設(shè)計(jì) //顯示界面1--漢字字符顯示 void _show_demo1(void) { FRONT_COLOR=WHITE; LCD_ShowString(10,10,tftlcd_data.width,tftlcd_data.height,12, Hai XiaoYi ); FRONT_COLOR=RED; LCD_ShowString(10,30,tftlcd_data.width,tftlcd_data.height,16, Hai
[單片機(jī)]
求一種<font color='red'>STM32</font><font color='red'>單片機(jī)</font>玩轉(zhuǎn)TFTLCD彩屏設(shè)計(jì)方案
學(xué)習(xí)STM32單片機(jī)之結(jié)構(gòu)體思想
學(xué)習(xí)內(nèi)容: 1.我們在操作寄存器的時(shí)候,操作的是寄存器的絕對地址,如果每個(gè)寄存器都這樣操作,那將非常麻煩。 2.我們考慮到外設(shè)寄存器的地址都是基于外設(shè)基地址的偏移地址,都是在外設(shè)基地址上逐個(gè)連續(xù)遞增的,每個(gè)寄存器占32 個(gè)或者16 個(gè)字節(jié),這種方式跟結(jié)構(gòu)體里面的成員類似。 3.定義一種外設(shè)結(jié)構(gòu)體,結(jié)構(gòu)體的地址等于外設(shè)的基地址,結(jié)構(gòu)體的成員等于寄存器,成員的排列順序跟寄存器的順序一樣。這樣我們操作寄存器的時(shí)候就不用每次都找到絕對地址,只要知道外設(shè)的基地址就可以操作外設(shè)的全部寄存器,即操作結(jié)構(gòu)體的成員即可。 下面先定義一個(gè)GPIO 寄存器結(jié)構(gòu)體,結(jié)構(gòu)體里面的成員是GPIO 的寄存器,成員的順序按照寄存器的偏移地址從低到高排
[單片機(jī)]
STM32單片機(jī)-低功耗設(shè)置
STM32F103R8和RC的停機(jī)模式的休眠電流還不一樣,R8停機(jī)模式實(shí)測為11uA,RC停機(jī)模式實(shí)測為30uA,還以為又是我的程序哪里沒做好呢,仔細(xì)看了PDF,這兩個(gè)芯片PDF上標(biāo)的值的確有區(qū)別,和我測的值差不多,那我就沒有再深究的意義了! 結(jié)合下文的高手經(jīng)驗(yàn),反復(fù)摸索, standby模式1.9uA,PWR_EnterSTOPMode(PWR_Regulator_LowPower, PWR_STOPEntry_WFI); stop模式:11uA, PWR_EnterSTANDBYMode(); 實(shí)驗(yàn)證明,將IO端口設(shè)成IPU/IPD/AIN/PPOUT=1/PPOUT=0/ODOUT=0,電流是基本
[單片機(jī)]
<font color='red'>STM32</font><font color='red'>單片機(jī)</font>-低功耗設(shè)置
STM32系列單片機(jī)命名規(guī)則
示例: STM32 F 100 C 6 T 6 B XXX 1 2 3 4 5 6 7 8 9 從上面的料號可以看出以下信息: ST品牌ARM Cortex-Mx系列內(nèi)核32位超值型MCU,LQFP -48封裝 閃存容量32KB 溫度范圍-40℃-85℃; 1.產(chǎn)品系列: STM32代表ST品牌Cortex-Mx系列內(nèi)核(ARM)的32位MCU; 2.產(chǎn)品類型: F:通用快閃(Flash Memory); L:低電壓(1.65~3.6V);F類型中F0xx和 F1xx系列為2.0~3.6V; F2xx和F4xx系列為1.8~3.6V;W:無線系統(tǒng)芯片,開發(fā)版. 3.產(chǎn)品子系列
[單片機(jī)]
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號

 
EEWorld服務(wù)號

 
汽車開發(fā)圈

 
機(jī)器人開發(fā)圈

電子工程世界版權(quán)所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務(wù)審批[2006]字第258號函 京公網(wǎng)安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved