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

GD32固件庫里時鐘配置時的神秘代碼?高頻切低頻時芯片會發(fā)生什么

發(fā)布者:溫暖心緒最新更新時間:2024-11-08 來源: elecfans關鍵字:GD32  固件庫  時鐘配置 手機看文章 掃描二維碼
隨時隨地手機看文章

在GD固件庫的時鐘配置函數里看到這樣一段神秘代碼,研究分析后不得不佩服原廠固件庫里的細節(jié)處理:

wKgaomXSsi-AVO_DAAA83Hgi63o377.png

查看定義是一段代碼,對AHB 2分頻后延時了一段時間:

wKgZomXSsjSAbukpAAAIJccqiQA616.png

在這段代碼后面可以看到程序將RCU_CFG0和RCU_CFG1兩個時鐘寄存器做了復位:

wKgaomXSsjmATD1PAAAJ25c3gug851.png

如果是程序復位啟動后第一次執(zhí)行這段代碼,應該是沒有什么意義的,但產品設計時一般都會有一個BootLoader和APP兩段程序,當BootLoader跳轉到APP時,MCU的時鐘已經處于一個高頻狀態(tài),直接執(zhí)行RCU的復位意味著時鐘會立刻切到內部8M運行。

而通過查看DATASHEET,可以看到MCU在最大主頻下和默認復位主頻下的電流差距是很大的:

wKgZomXSsj6AfnAwAAA7LoorJ9c450.png


wKgaomXSskOAEYDBAAA7u6RsHQM877.png

這樣的內部電流瞬間變化一般會導致內部電源的波動,這種波動情況下執(zhí)行的指令是不可靠的,如果硬件設計時MCU去耦電容設計不合理,很可能加劇這個波動,此時如果指令錯誤了那很可能會跑飛進入hardfault。

而GD固件庫里這個神秘代碼,在高頻的情況下可以將系統(tǒng)時鐘降低一半并延時等待穩(wěn)定,最后再復位時鐘寄存器降到8M的系統(tǒng)時鐘。這樣就讓電流變化有一個過渡,避免了內部電源波動過大。

wKgaomXSskOAEYDBAAA7u6RsHQM877.png


——>

wKgaomXSsk6AGo8-AAA9-GMILY0893.png


——>

wKgaomXSslSAZEkGAAA2s0lsMKs854.png

關鍵字:GD32  固件庫  時鐘配置 引用地址:GD32固件庫里時鐘配置時的神秘代碼?高頻切低頻時芯片會發(fā)生什么

上一篇:分析采用GD32 MCU設計LCD顯示屏背光驅動方案的實用性和應用
下一篇:【GD32 MCU 移植教程】6、從GD32F1x0和GD32F3x0移植到GD32E230

推薦閱讀最新更新時間:2025-07-02 08:08

STM32F7系統(tǒng)配置控制器(SYSCFG)及復位和時鐘控制(RCC)
這篇文章帶大家看一下 STM32F7的系統(tǒng)配置控制器 。系統(tǒng)配置控制器主要用于: 1、 選擇以太網PHY接口; 2、 交換FMC SDRAM存儲區(qū)域與NOR/PSRAM存儲區(qū)域; 3、 管理GPIO外部中斷線連接; 在系統(tǒng)控制寄存器里有一個bit位來選擇使用哪個選項字定義的啟動基地址來啟動。 復位類型 一共有三種復位類型,系統(tǒng)復位、電源復位和備份域復位。 系統(tǒng)復位在VDD保持正常工作電壓的前提下,有五種事件可以產生復位,分別是低功耗管理復位、軟件復位、獨立看門狗計數器溢出、窗口看門狗計數器溢出和NRST引腳上的低電平。這里低功耗管理復位指的是MCU執(zhí)行低功耗模式進入序列的時候是產生復位還是停止待機模式,這個是可以通過選
[單片機]
STM8S003F時鐘配置
[單片機]
STM8S003F<font color='red'>時鐘</font><font color='red'>配置</font>
基于STM32F407時鐘配置學習
2F4x系列時鐘樹如下: 1、系統(tǒng)時鐘SYSCLK 在STM32F407中,除了一些特定的時鐘(例如,USB OTG FS時鐘,I2S時鐘)外,系統(tǒng)所有外設的時鐘均是通過SYSCLK來提供的。也就是說我們經常用到的外設時鐘,都是通過SYSCLK分頻得到的。下面是和SYSCLK相關的時鐘樹的圖。 由圖中可以看到,SYSCLK的來源主要有三個。 - HSI 振蕩器時鐘 - HSE 振蕩器時鐘 - 主 PLL (PLL) 時鐘 下面分別來看下系統(tǒng)時鐘SYSCLK的三個來源。 (1) 高速外部時鐘HSE(4M~26M) 高速外部時鐘是芯片內部的HSE振蕩器產生的。高速外部信號(HSE)有兩個時鐘源。 - HSE外
[單片機]
基于STM32F407<font color='red'>時鐘</font><font color='red'>配置</font>學習
STM32F4時鐘配置
看了下時鐘樹按照http://blog.csdn.net/louyangyang91/article/details/51374924這個博文配置了,結果發(fā)現UART波特率不對,但是MOC1\2都是正常輸出(168M/5分頻輸出),蒙了很久才發(fā)現 USART_Init(USART1, &USART_InitStructure); 這個函數內部會調用RCC_GetClocksFreq(&RCC_ClocksStatus);這個函數來得到PCLK1\PCLK2等系統(tǒng)時鐘,進入這個函數看其內部發(fā)現它調用了一個HSE_VALUE的宏定義,繼續(xù)定位發(fā)現居然是 #if !defined (HSE_VALUE) #define HSE_VA
[單片機]
STM32入門學習之_SysTick_Config()函數的SysTick時鐘配置
上來就是systick定時器,因為GPIO等的基礎操作過于簡單,網上資料太多了。 這里討論的是基于STM32F10x 的基于 V3.5.0庫的庫函數配置方法。 Systick又叫系統(tǒng)嘀答定時器,是一個24位的硬件定時器。嵌入式操作系統(tǒng)常有一個類似“心跳”的定時器,來分配時間片,實現宏觀上的多任務。 其實,操作系統(tǒng)的多任務,在微觀上,CPU對多任務的管理是分時的。每個任務都給一定的時間片,就是把時間分成N個等份,優(yōu)先級高或是 重要的任務多占幾個時間片,優(yōu)先級低的或是不重要的任務就少占幾個時間片。大部分嵌入式操作系統(tǒng)基于時間片的。如ucos。 那基于STM32F10x V3.5.0庫如何操作Systick定時器呢。 首先:STM32
[單片機]
STM32F0xx_RTC實時時鐘配置詳細過程
Ⅰ、概述 今天總結RTC(Real Time Clock)實時時鐘相關的知識,順帶將BKP簡單總結一下。 STM32的RTC模塊和時鐘配置系統(tǒng)(RCC_BDCR寄存器)處于后備區(qū)域,即在系統(tǒng)復位或從待機模式喚醒后, RTC的設置和時間維持不變。 STM32F0的RTC模塊和F1的RTC模塊最大區(qū)別在于F0模塊中有“DATE”和“TIME”寄存器,也就是可以直接讀取寄存器里面的值,而F1是秒計數寄存器的值,需要通過相關算法下才能得到時間的值。 本文提供的軟件工程里面還包含一個BKP模塊,主要是用于掉電保持RTC數值(第一次上電初始化RTC,后面就不用初始化)。例程是在第一次初始化RTC值為:2016年6月5日 周七 12:00:00
[單片機]
STM32F0xx_RTC實時<font color='red'>時鐘</font><font color='red'>配置</font>詳細過程
stm32f105/107互聯(lián)性時鐘配置參考函數
/************************************************************************ ** Function Name : RCC_Configuration ** Description : 配置時鐘 ** Input Parameters : ** Output Parameters : = 1 : 保存成功 = 0 : 保存失敗 note : *********************************************************************
[單片機]
小廣播
設計資源 培訓 開發(fā)板 精華推薦

最新單片機文章

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

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