在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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
    +關注

    關注

    2291

    文章

    11019

    瀏覽量

    363009
  • 時鐘
    +關注

    關注

    11

    文章

    1887

    瀏覽量

    132959
  • Cortex
    +關注

    關注

    2

    文章

    203

    瀏覽量

    47192
  • Systick
    +關注

    關注

    0

    文章

    63

    瀏覽量

    13517
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    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

    ADS1298芯片內部有無時鐘呢?

    我想問一下ADS1298芯片內部有無時鐘呢?如果有那頻率是不是:2.048MHz呢? 如果不外接時鐘,這個芯片能否正常工作呢?
    發表于 02-08 06:06

    一文看懂!時鐘在數據采集系統究竟起到哪些關鍵作用?

    時鐘的基本概念 時鐘是數據采集系統的關鍵組件,負責提供同步信號并控制數據采集和轉換的時間間隔。時鐘信號可以由設備內部生成,也可以通過外部信號提供。
    的頭像 發表于 01-21 13:44 ?578次閱讀
    一文看懂!<b class='flag-5'>時鐘</b>在數據采集系統<b class='flag-5'>中</b>究竟起到哪些關鍵作用?

    用ADS124S08實現高精度溫度采集,用內部時鐘好還是外部時鐘好?

    ADS124S08的規格書里說明其系統時鐘可以由內部集成的4.096MHz振蕩器提供,也可以由外部時鐘提供。我想請問一下兩者在轉換精度上有多大差異?我要用ADS124S08實現高精度溫度采集,用內部
    發表于 12-20 08:12

    TLV320ADC6140內部有時鐘嗎?

    datasheet里說有內部時鐘,并建議使用內部時鐘。 但是應用文檔中有提到芯片作為i2s的master模式下時需要外部提供MCLK? 所以,芯片內部有時鐘
    發表于 12-03 08:12

    本源產品丨高穩低相噪時鐘

    的一致性和穩定性同步工作。本源量子憑借自主研發的高穩低相噪時鐘,成功搭建起連接各個組件時序控制單元的橋梁,該時鐘能夠提供高穩定性和高精度頻率時鐘
    的頭像 發表于 11-14 01:05 ?480次閱讀
    本源產品丨高穩低相噪<b class='flag-5'>時鐘</b><b class='flag-5'>源</b>

    請問下CDCLVC1106PWR的cLKIN時鐘輸入管腳可以是來自FPGA或者MCU輸出的時鐘不?

    請問下CDCLVC1106PWR的cLKIN時鐘輸入管腳可以是來自FPGA或者MCU輸出的時鐘不?還是必須是晶振或者晶體產生的時鐘
    發表于 11-13 07:05

    stm32怎樣觸發軟件中斷

    了解STM32斷系統 STM32微控制器具有豐富的中斷系統,包括NVIC(嵌套向量中斷控制器)和SYSTICK定時器。NVIC可以處理多達240個中斷
    的頭像 發表于 09-02 09:32 ?1726次閱讀

    請問TINA的電流哪里可以找到?

    我想用TINA軟件來做開關電源的輸出瞬態仿真測試。例如輸出電流沖1A到2A的跳變,測試輸出電壓的變化值。我在TINA沒有找到對應的脈沖電流,但是在WEBENCH就有的。請問TINA的電流
    發表于 08-09 08:22

    【CH32V208】2、體驗systick

    ); } 此函數的功能為輸出一個計算值,并在串口中輸出,以便觀察 5、主程序,我們傳一個配置溢出值為系統時鐘-1即1秒種進入一次中斷。 【實驗現象】 下載到開發板后,打開串口終端,可以成功實現即定功能:
    發表于 07-31 09:37

    求助,關于STM32F030K6低功耗停止模式下SysTick的問題求解

    芯片型號:STM32F030K6 開發環境:標準庫 問題:SYSCLK配置的是HSI(PLL選擇HSI也試過)。在調試停止模式時,發現只要初始化過程調用SysTick_Config()函數配置滴答
    發表于 07-23 08:11

    STM32F030C8T6進入停止模式后所有時鐘都停止了,為何SysTick還能工作?

    我在使用STM32F030C8T6,按照參考手冊的說法,在停止模式全部時鐘停止。沒有了時鐘SysTick應該也不再工作,但實際上SysTick
    發表于 07-23 06:52

    為什么FREERTOS不是用SYSTIMER做TICK的時鐘呢?

    從 MENUCONFIG 看到freertos 的 TICK 時鐘 默認來自 timer0 , 也可選擇TIMER1 。 看文檔介紹ESP32S2 中有 systimer 作用是專用于操作系統
    發表于 06-21 08:11
    主站蜘蛛池模板: 精彩视频一区二区三区 | 久久精品亚洲精品国产欧美 | 天堂最新版在线地址 | 色综合久久88色综合天天 | 天天草天天爽 | 你懂的视频在线看 | 国产单男 | 成年人网站黄色 | 国产网红主播精品福利大秀专区 | 爱射综合 | 黄色的视频免费看 | 这里只有精品视频 | 一级特黄a大片免费 | 亚洲伊人久久大香线蕉影院 | 狠狠色丁香婷婷久久综合不卡 | 夜夜操综合| 综合免费一区二区三区 | 欧美午夜视频 | 在线视频 二区 | 黄色性生活毛片 | 日日噜噜噜夜夜爽爽狠狠视频 | 日韩a级毛片免费观看 | 国产一级特黄a大片免费 | 成人a毛片在线看免费全部播放 | 亚洲伊人久久大香线蕉啊 | 人人干人人爱 | 操美女大逼逼 | 欧美色a电影精品aaaa | 男人天堂网在线视频 | 国产热re99久久6国产精品 | 手机在线看片你懂得 | 亚洲卡一卡2卡三卡4卡国色 | 国产美女视频爽爽爽 | 成年网站在线在免费播放 | 美国bj69video18视频 | 色播四房间 | 一个色综合网站 | 免费免费啪视频在线 | 夜夜橹橹网站夜夜橹橹 | 边摸边吃奶边做视频叫床韩剧 | 午夜性爽快 |