單片機型號:STM32L053R8T6
參看已有的低功耗例程,發現都使能了HSI時鐘,一致沒有深究其中的具體原因,今天把它搞明白了,現記錄如下:
先看一下,使能低功耗的函數:
void CTarget::EnableLowPower(void)
{
HAL_PWREx_EnableUltraLowPower();
HAL_PWREx_EnableFastWakeUp();
__HAL_RCC_WAKEUPSTOP_CLK_CONFIG(RCC_STOP_WAKEUPCLOCK_HSI);
DisableAllIO();
}
第1句使能超低功耗,第2句使能快速喚醒,第3句選擇喚醒后的主始終,第4句將所有IO引腳設置為低功耗狀態。
關鍵語句就在于__HAL_RCC_WAKEUPSTOP_CLK_CONFIG,以下是該宏的原型:
/**
* @brief Macro to configures the wake up from stop clock.
* @param __RCC_STOPWUCLK__ specifies the clock source used after wake up from stop
* This parameter can be one of the following values:
* @arg @ref RCC_STOP_WAKEUPCLOCK_MSI MSI selected as system clock source
* @arg @ref RCC_STOP_WAKEUPCLOCK_HSI HSI selected as system clock source
* @retval None
*/
#define __HAL_RCC_WAKEUPSTOP_CLK_CONFIG(__RCC_STOPWUCLK__) (MODIFY_REG(RCC->CFGR,
RCC_CFGR_STOPWUCK, (uint32_t)(__RCC_STOPWUCLK__) ))
在這里說的已經很清楚,喚醒后的主時鐘智能選擇MSI或HSI,這也就是為什么低功耗程序都是能HSI時鐘的原因了。
上一篇:STM32開發筆記73: C++中子類調用父類同名函數的處理方法
下一篇:STM32開發筆記72: 使用命名空間解決類名沖突問題
推薦閱讀
史海拾趣
ABCO公司深知產品質量是企業生存的根本。因此,公司建立了一套嚴格的質量管理體系,從原材料采購到產品生產、檢測、出廠等各個環節都進行嚴格把控。同時,公司還注重持續改進,不斷優化生產流程,提高生產效率,確保產品質量始終保持在行業前列。
隨著技術的不斷進步,ABCO公司意識到只有不斷創新才能在競爭中保持領先地位。因此,公司加大了對研發的投入,建立了一支高效的技術團隊。這支團隊不僅成功研發出了多款具有自主知識產權的新型傳感器,還積極探索傳感器與其他電子設備的融合應用,為公司開辟了新的增長點。
ETI公司成立于20世紀初,當時電子產業正處于起步階段。創始人張三看準了電子技術的巨大潛力,決定投身其中。然而,初創時期資金短缺、技術落后、市場競爭激烈等問題讓ETI步履維艱。張三憑借著對電子技術的熱情和不懈的努力,帶領團隊不斷研發新產品,拓展市場,最終使ETI在電子行業中嶄露頭角。
隨著電子技術的快速發展,ETI意識到只有不斷創新才能在競爭中立于不敗之地。公司加大了對研發的投入,積極引進國內外先進技術,并鼓勵員工提出創新性的想法。在一次偶然的實驗中,ETI的研發團隊成功研發出了一種具有高效能、低功耗特點的電子元器件,這一突破性的技術成果迅速獲得了市場的認可,為ETI帶來了可觀的收益。
背景:隨著環保意識的增強,消費者對電子產品的環保要求也越來越高。Hisetec Electronic Co Ltd公司積極響應這一趨勢,將綠色環保理念融入產品設計、生產和回收的全過程。
發展:公司投入大量資金研發環保材料和生產工藝,確保產品從源頭到終端都符合環保標準。同時,公司還建立了完善的電子廢棄物回收體系,對廢舊電子產品進行拆解、分類和再利用。這些舉措不僅贏得了消費者的信任和支持,還推動了整個電子行業的綠色升級。
進入21世紀,安國繼續深耕集線器控制芯片領域。2000年,公司發布了首款USB鍵盤集線器控制芯片——AU9432,這款芯片憑借其卓越的性能和穩定性,成功被Apple的iMAC鍵盤所采用。這一里程碑事件不僅證明了安國在集線器控制芯片領域的領先地位,也為其后續的產品研發和市場拓展奠定了堅實基礎。
查了半天,但是說的都不太一樣,不知道哪個正確,開個貼再問一下。 板子現在串口1是作為調試串口的,想改成普通串口。(wince5.0 S3C2440) 應該改debug.c的哪里? 還需要修改platform.reg的哪?只修改這兩個吧? 希望您說的細點...解決了我馬上 ...… 查看全部問答∨ |
|
使用 2.6.26 內核 在 ks8695x 遇到了下面的問題: int g_nAlloc=0, g_nFree=0; int hw_isr0(...) { ... spin_lock(&g_nsLock); if( ((g_nAlloc+1)%250) != g_nFree ) { ...… 查看全部問答∨ |
|
有關競賽搶答器的匯編語言解釋 有部分看不懂 麻煩高手給我解釋下. rr: shr al, l inc cl jnc rr mov al,cl xlat mov dx,io8255c out dx,al ...… 查看全部問答∨ |
在CE6下,為了實現驅動和應用程序的同步通信,所以想用建立同名事件的方法來實現同步。 我在驅動里建立一個事件:AAA=CreateEvent(NULL,TRUE,FALSE,TEXT("TESTOBJ")) 然后通過KernelIoControl申請邏輯中斷號,成功申請到中斷號后,把申請到的 ...… 查看全部問答∨ |
(問題已解決)請教vivi的 load flash vivi x 問題 我找了個干凈的vivi, 移植好了, jtag上去開發板, 然后用dnw.exe連接了, 進入vivishell后, 用bon part 0 192k 1216k 分區. 完成以后, load flash vivi x 然后重新燒錄vivi這個文件. 然后reset 發現不能啟動vivi. ...… 查看全部問答∨ |
SD card GPS driver中的幾個問題,請高手指點_WinCE _ 1. GPS client driver 的入口點調用流程是什么樣的?(從GPS ID開始) 2. 為什么在SDAccess::Init()就設置喚醒功能傳輸模式? 3. SDAccess::ParseTuple()中SDGetTuple(m_hDevice,SD_CISTPL_SDIO_STD。。。)所得到的offset是根據什么計算的? ...… 查看全部問答∨ |