娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

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

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

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

wKgaomXSsi-AVO_DAAA83Hgi63o377.png

查看定義是一段代碼,對(duì)AHB 2分頻后延時(shí)了一段時(shí)間:

wKgZomXSsjSAbukpAAAIJccqiQA616.png

在這段代碼后面可以看到程序將RCU_CFG0和RCU_CFG1兩個(gè)時(shí)鐘寄存器做了復(fù)位:

wKgaomXSsjmATD1PAAAJ25c3gug851.png

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

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

wKgZomXSsj6AfnAwAAA7LoorJ9c450.png


wKgaomXSskOAEYDBAAA7u6RsHQM877.png

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

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

wKgaomXSskOAEYDBAAA7u6RsHQM877.png


——>

wKgaomXSsk6AGo8-AAA9-GMILY0893.png


——>

wKgaomXSslSAZEkGAAA2s0lsMKs854.png

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

上一篇:分析采用GD32 MCU設(shè)計(jì)LCD顯示屏背光驅(qū)動(dòng)方案的實(shí)用性和應(yīng)用
下一篇:【GD32 MCU 移植教程】6、從GD32F1x0和GD32F3x0移植到GD32E230

推薦閱讀最新更新時(shí)間:2025-03-28 08:27

stm8l15x 外部時(shí)鐘配置
CLK_DeInit(); CLK_HSEConfig(CLK_HSE_ON); while(!CLK_GetFlagStatus(CLK_FLAG_HSERDY)); CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSE); #if (SYS_CLOCK_16M) CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1); #endif #if (SYS_CLOCK_8M) CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_2); #endif #if (SYS_CLOCK_4M) CLK_SYSCLKDivConfig(CL
[單片機(jī)]
學(xué)習(xí)筆記∣stm32l0xx時(shí)鐘系統(tǒng)詳解與代碼配置
時(shí)鐘是嵌入式系統(tǒng)的脈搏,對(duì)嵌入式系統(tǒng)至關(guān)重要。處理器內(nèi)核在時(shí)鐘驅(qū)動(dòng)下完成狀態(tài)變換等動(dòng)作,外設(shè)部件在時(shí)鐘的驅(qū)動(dòng)下完成各種工作,比如串口數(shù)據(jù)的發(fā)送、A/D轉(zhuǎn)換、定時(shí)器計(jì)數(shù)等等。stm32l0xx系列低功耗新增MSI內(nèi)部多頻率可選時(shí)鐘源,代碼配置方面基于HAL庫,與f系列相比存在一定的區(qū)別,本文以datasheet中的時(shí)鐘樹圖為基礎(chǔ)對(duì)時(shí)鐘系統(tǒng)進(jìn)行學(xué)習(xí)總結(jié)。時(shí)鐘樹如下圖1所示: 1、LSI RC,低速內(nèi)部時(shí)鐘(RC振蕩器),是看門狗(WatchdogLS)的唯一時(shí)鐘來源,可以作為實(shí)時(shí)時(shí)鐘RTC和主時(shí)鐘輸出(MCO)的時(shí)鐘源。 2、LSE OSC,外部低速時(shí)鐘(晶振),輸入輸出引腳接OSC32_IN、OCS32_OUT可以作為實(shí)時(shí)
[單片機(jī)]
學(xué)習(xí)筆記∣stm32l0xx<font color='red'>時(shí)鐘</font>系統(tǒng)詳解與代碼<font color='red'>配置</font>
STM32系統(tǒng)時(shí)鐘設(shè)置,采用外部有源晶振相關(guān)配置問題
今天在調(diào)試STM32系統(tǒng)時(shí)鐘設(shè)置時(shí)遇到一個(gè)問題:TIM2定時(shí)1Ms,TIM2中斷服務(wù)函數(shù)time++,time=100時(shí)LED狀態(tài)改變。程序運(yùn)行后發(fā)現(xiàn)LED不是按照0.1S的時(shí)間閃爍,閃爍的很慢。 查找程序發(fā)現(xiàn)在系統(tǒng)時(shí)鐘初始化時(shí),RCC_HSEConfig(RCC_HSE_Bypass); 語句配置不對(duì),此語句解釋為HSE晶振被外部時(shí)鐘旁路。指將芯片內(nèi)部的用于外部晶體起振和功率驅(qū)動(dòng)等的部分電路和XTAL_OUT引腳斷開,這時(shí)使用的外部時(shí)鐘是有源時(shí)鐘或者其他STM32提供的CCO輸出等時(shí)鐘信號(hào),直接單線從XTAL_IN輸入,這樣即使外部有晶體也震蕩不起來了。 因?yàn)橹坝玫氖怯性淳д瘢臃ㄈ缦聢D1:HSE配置如下:RCC_HSECon
[單片機(jī)]
STM8L HSE時(shí)鐘配置
CLK_DeInit(); CLK_HSEConfig(CLK_HSE_ON); while(!CLK_GetFlagStatus(CLK_FLAG_HSERDY)); CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSE); CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1); CLK_SYSCLKSourceSwitchCmd(ENABLE); CLK_ClockSecuritySystemEnable();
[單片機(jī)]
關(guān)于使用GD32 MCU實(shí)現(xiàn)位帶操作的指南
MCS-51單片機(jī)可以簡單的將P1口的第2位獨(dú)立操作,如P1.2=0;P1.2=1,就是這樣把P1口的第三個(gè)腳(BIT2)置0置1。對(duì)于32位ARM MCU 我們可以像51單片機(jī)一樣單獨(dú)的對(duì)某個(gè)端口的某一個(gè)IO單獨(dú)操作嗎?答案是可以的。并且這樣就引入了“位帶操作”的概念。簡而言之,為了能夠?qū)崿F(xiàn)單獨(dú)的位控制,所以就有了位帶這樣的操作機(jī)制。 ARM Cortex-M3處理器采用哈佛結(jié)構(gòu),可以使用相互獨(dú)立的總線來讀取指令和加載/存儲(chǔ)數(shù)據(jù)。指令代碼和數(shù)據(jù)都位于相同的存儲(chǔ)器地址空間,但在不同的地址范圍。程序存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)器,寄存器和I/O端口都在同一個(gè)線性的4 GB的地址空間之內(nèi)。這是Cortex-M3的最大地址范圍,因?yàn)樗牡刂房偩€
[單片機(jī)]
GD32 MCU 入門教程】一、GD32 MCU 開發(fā)環(huán)境搭建(2)使用 IAR 開發(fā) GD32
IAR版本眾多,版本之間的兼容性并不好,如果初次使用建議安裝7.3以上的版本,安裝好IAR以后再根據(jù)該文檔來添加GD的器件型號(hào),進(jìn)行相關(guān)的debug工作。 2.1 在IAR中添加GD32 MCU Device 2.1.1 從官網(wǎng)上下載相應(yīng)的GD32系列插件。 下面以GD32F30x系列為例,下載插件IAR_GD32F30x_ADDON.1.0.0.exe: 2.1.2 運(yùn)行IAR_GD32F30x_ADDON.1.0.0.exe,單擊start開始安裝插件。 2.1.3 安裝成功后單擊Finish,結(jié)束插件安裝。 2.2 在IAR中編譯調(diào)試GD32 在上一小節(jié)中我們已經(jīng)添加了GD32F30x系列的插件,這一小節(jié)我們介紹
[單片機(jī)]
【<font color='red'>GD32</font> MCU 入門教程】一、<font color='red'>GD32</font> MCU 開發(fā)環(huán)境搭建(2)使用 IAR 開發(fā) <font color='red'>GD32</font>
GD32和STM32單片機(jī)的區(qū)別
00 前言 缺料危機(jī)還在持續(xù),MCU從國外ST替換到了國產(chǎn)杰發(fā)科,國產(chǎn)供應(yīng)仍有缺口,不得已還得替換,于是又在考慮兆易創(chuàng)新,在選型的過程中,了解到一點(diǎn)區(qū)別,和大家分享一下,避免替換時(shí)遇到坑。 兆易創(chuàng)新GD32是國內(nèi)開發(fā)的一款單片機(jī),據(jù)說開發(fā)的人員是來自ST公司的,GD32也是以STM32作為模板做出來的。所以GD32和STM32有很多地方都是一樣的。 不過GD32畢竟是不同的產(chǎn)品,不可能所有東西都沿用STM32,有些自主開發(fā)的東西還是有區(qū)別的。 相同的地方我們就不說了,下面列一下不同的地方。 01 內(nèi)核 GD32采用二代的M3內(nèi)核,STM32主要采用一代M3內(nèi)核,下圖是ARM公司的M3內(nèi)核勘誤表,GD使用的內(nèi)核只有752419這
[單片機(jī)]
<font color='red'>GD32</font>和STM32單片機(jī)的區(qū)別
stm32f103移植到GD32修改內(nèi)容及注意事項(xiàng)
  在國內(nèi) 芯片 緊張的情況下,目前如果項(xiàng)目沒有成型可以安裝官方提供的 GD32 的pack,選擇相關(guān)的pack即可正常編程。若程序已經(jīng)成型,需要移植,首先就要考慮芯片類型( stm32 系列)的選擇。   選擇過程中首先要根據(jù)已用stm32 單片機(jī) 的封裝和引腳定義去對(duì)應(yīng)相關(guān)的gd32芯片類型。   這里我選用的是GD32f305芯片替換stm32f103rc,所作設(shè)置如下:   1.點(diǎn)擊魔術(shù)棒選擇stm32f103芯片   2.根據(jù)晶振設(shè)置晶振,這里設(shè)置72MHz   3.根據(jù)芯片flash大小設(shè)置STM32F10X_LD、STM32F10X_MD、STM32F10X_HD,不知道的可以查手冊(cè),實(shí)在不行就一個(gè)一個(gè)去試。  
[單片機(jī)]
stm32f103移植到<font color='red'>GD32</font>修改內(nèi)容及注意事項(xiàng)
小廣播
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦

最新單片機(jī)文章

 
EEWorld訂閱號(hào)

 
EEWorld服務(wù)號(hào)

 
汽車開發(fā)圈

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

電子工程世界版權(quán)所有 京ICP證060456號(hào) 京ICP備10001474號(hào)-1 電信業(yè)務(wù)審批[2006]字第258號(hào)函 京公網(wǎng)安備 11010802033920號(hào) Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 绿春县| 柞水县| 扎兰屯市| 新疆| 隆化县| 石家庄市| 宝应县| 杭州市| 鄂尔多斯市| 商河县| 龙井市| 上虞市| 文水县| 德庆县| 清河县| 赣州市| 屯昌县| 兴文县| 农安县| 疏勒县| 宜君县| 迁西县| 台东县| 枣庄市| 商河县| 丹阳市| 满洲里市| 平阳县| 陕西省| 华坪县| 台北县| 凤山市| 利辛县| 高清| 龙江县| 明水县| 临夏市| 扬中市| 东台市| 景宁| 七台河市|