国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32中的SysTick時鐘源來自哪里?

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-03-03 14:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

有位朋友在后臺大概問了這樣一個問題:STM32的SysTick時鐘源是來自Cortex系統定時器嗎?

引伸:

為什么STM32CubeMX中Cortex系統定時器可選擇1分頻(和8分頻)?

1寫在前面

看到這個問題,我在想,這位朋友可能沒有認真看手冊,同時也存在一個誤區。

我順便也搜索了一下,網上很多文章都說到:SysTick時鐘源是來自Cortex系統定時器,就是那個有8分頻的時鐘

但是,我們實際應用中,SysTick時鐘源真的是來自這個Cortex系統定時器嗎?

2

SysTick時鐘初始化代碼

不管是使用標準外設庫,還是HAL庫,你初始化SysTick,都會調用內核中的SysTick_Config函數。

比如:

SysTick_Config(SystemCoreClock / 1000);

初始化調用這段代碼之后,SysTick將會實現1ms中斷一次。

這段代碼實現1ms中斷一次相信大家都能理解,但是這里SysTick初始化和上面說的時鐘『/8』有關系嗎?

3

SysTick時鐘源是來自哪里?

這個問題只要認真看參考手冊都能找到答案。

RCC通過AHB時鐘(HCLK)8分頻后作為Cortex系統定時器(SysTick)的外部時鐘。

通過對SysTick控制與狀態寄存器的設置,可選擇上述時鐘或Cortex(HCLK)時鐘作為SysTick時鐘。

--來自參考手冊

也就是說SysTick時鐘源可以來自兩個地方:

AHB時鐘8分頻

HCLK(內核)時鐘


通過SysTick控制與狀態寄存器的設置進行選擇時鐘源。

具體就是通過CLKSOURCE(時鐘源)這一Bit位來選擇:

再次看SysTick_Config函數源碼:

__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks){ if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) { return (1UL); /* Reload value impossible */ } SysTick->LOAD = (uint32_t)(ticks - 1UL); /* set reload register */ NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */ SysTick->VAL = 0UL; /* Load the SysTick Counter Value */ SysTick->CTRL = SysTick_CTRL_CLKSOURCE_Msk | SysTick_CTRL_TICKINT_Msk | SysTick_CTRL_ENABLE_Msk; /* Enable SysTick IRQ and SysTick Timer */ return (0UL); /* Function successful */}

你會發現,其實源碼已經默認使用HCLK(內核)時鐘。

而SysTick_Config函數屬于內核(如core_cm3.h)已經寫好源碼,一般我們不去修改。

所以,到這里,你會明白:SysTick時鐘源其實就是用的HCLK(內核)時鐘。

4

STM32CubeMX...可選擇1分頻

分析上面問題的時候,我突然發現一個問題:為什么STM32CubeMX中Cortex系統定時器可選擇1分頻(和8分頻)?

(使用STM32CubeMX V5.1.0)

我通過配置1分頻和8分頻,各自生成代碼,進行對比,發現生成的代碼完全一樣。

然后,我又查看手冊,RCC時鐘樹中的這個位置是固定『/8』,也沒有看到可『/1』的說明。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • STM32
    +關注

    關注

    2309

    文章

    11162

    瀏覽量

    373415
  • 時鐘
    +關注

    關注

    11

    文章

    1971

    瀏覽量

    134987
  • Cortex
    +關注

    關注

    2

    文章

    220

    瀏覽量

    48778
  • Systick
    +關注

    關注

    0

    文章

    67

    瀏覽量

    13968
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    SG-210STF有源晶振在5G基站數據中心中的應用_高精度時鐘

    在通信基站、數據中心、精密儀器乃至自動駕駛系統,一個微小卻至關重要的部件正默默維系著整個系統的有序運轉——它就是時鐘時鐘信號的精準與穩定,直接關乎數據傳輸的可靠性、系統同步的精確
    的頭像 發表于 02-27 09:44 ?63次閱讀
    SG-210STF有源晶振在5G基站數據中心中的應用_高精度<b class='flag-5'>時鐘</b><b class='flag-5'>源</b>

    systick來做內部時鐘信號源

    采用默認時鐘配置,并初始化systick為1mS定時,在systick對32位的uwTick變量進行持續加1(計滿后變為0)。 InitTick( 24000000 );//初始
    發表于 01-27 11:14

    CW32系統滴答SysTick定時器詳解

    Cortex-M0+處理器內置有一個SysTick定時器,通常用于嵌入式操作系統的多任務切換,在不使用操作系統的應用,亦可作為其它用途,如定時、計時或者為需要周期性執行的任務提供中斷
    發表于 01-21 07:20

    LAT1215+如何讓 STM32WB 在沒有 LSE 時運行 BLE 應用程序

    首先 LSE 可作為 STM32WB RF Wakeup 和 RTC 的時鐘STM32WB RF Wakeup 和 RTC 的時鐘
    發表于 01-09 10:55 ?0次下載

    MCU低功耗應用

    域,選擇適當的時鐘。 ?? 設置 SYSCTRL_CR0 寄存器的 HCLKPRS 位域,降低 HCLK 頻率。 ?? 設置 SYSCTRL_CR0 寄存器的 PCLKPRS 位域,降低 PCLK
    發表于 11-27 07:26

    使用系統定時器SysTick來實現精確延時微秒和毫秒函數

    != 0);}在使用延時函數之前,只需要進行系統時鐘的更新即可,當然也可以不更新,因為在程序之前之前,系統啟動文件已經執行了系統時鐘更新。 總結 由于SysTick定時器是所有的
    發表于 11-20 07:12

    PWM、定時器、SysTick 區別及應用場景

    在單片機和嵌入式開發,經常會遇到PWM(脈寬調制)、定時器、SysTick(系統滴答定時器)這幾個詞。很多初學者容易把它們混為一談,以為都是“定時相關的東西”。其實,它們在本質和應用上有明顯差別
    的頭像 發表于 11-17 10:53 ?507次閱讀
    PWM、定時器、<b class='flag-5'>SysTick</b> 區別及應用場景

    systick時鐘基地址無法找到怎么解決?

    在操作systick的時候發現無法找到它的基地址,查看sdk可以發現是0xd1000000,但是在手冊找不到對應的介紹,甚至都找不到對應的手冊。如下圖所示,讓參見Bumblebee內核簡明數據手冊
    發表于 11-07 08:11

    Proteus配置STM32外部時鐘HSE如何配置

    有大佬會配置ProteusSTM32F103C8的外部時鐘嗎 這個proteus打印不出來數據,但是在實物的連接可以正常打印 代碼
    發表于 11-02 13:54

    SysTick系統滴答定時器簡介

    SysTick—系統定時器是屬于CM33內核的一個外設,內嵌在NVIC。系統定時器是一個24bit的向下遞減的計數器,計數器每計數一次的時間為 1/SYSCLK,一般我們設置系統時鐘
    的頭像 發表于 09-23 09:50 ?1619次閱讀
    <b class='flag-5'>SysTick</b>系統滴答定時器簡介

    為什么使用以下命令初始化系統時鐘時,HCLK的時鐘無法切換到PLL?

    為什么使用以下命令初始化系統時鐘時,HCLK的時鐘無法切換到PLL?
    發表于 08-26 08:22

    瑞薩RA系列FSP庫開發實戰指南(29)CGC(時鐘生成電路)時鐘控制

    Circuit,中文譯為“時鐘生成電路”,或者也可以叫它“時鐘控制電路”。 13.1.1 時鐘 我們學過《數字邏輯電路》知道,在芯片集成電路的系統
    的頭像 發表于 08-05 14:02 ?3437次閱讀
    瑞薩RA系列FSP庫開發實戰指南(29)CGC(<b class='flag-5'>時鐘</b>生成電路)<b class='flag-5'>時鐘</b>控制

    0STM32SysTick是個啥?咋用?(可下載)

    的使能位清除,就永不停息。SysTick在《STM32xx中文參考手冊》里面基本沒有介紹,其詳細介紹,內核編程手冊。在工程我們將以
    發表于 04-01 14:52 ?0次下載

    stm32h7s78 rcc pll2時鐘使能失敗的原因?

    使用的板卡是 stm32h7s78-dk,啟動流程是 boot + flash app 的方式,boot 參考的 xip 示例,xip 時鐘綁定在 hclk 上。 問題 在 app 代碼,初始化
    發表于 03-14 10:33

    STM32哪里可以看出芯片是否支持外部存儲擴展?

    STM32哪里可以看出芯片是否支持外部存儲擴展,從什么可以選出合適的芯片,主要是速度這些,大概率是怎么看的,時鐘樹是怎么理解的
    發表于 03-10 06:16