色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

STM32的SysTick時鐘源是來自Cortex系統定時器嗎?

5RJg_mcuworld ? 來源:lp ? 2019-04-03 13:54 ? 次閱讀

有位朋友在后臺大概問了這樣一個問題: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』的說明。

這里就留下一個問題:

你認為STM32CubeMX配置Cortex系統定時器時鐘是有Bug嗎?

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

    關注

    2270

    文章

    10895

    瀏覽量

    355744
  • 時鐘
    +關注

    關注

    10

    文章

    1733

    瀏覽量

    131451
  • 定時器
    +關注

    關注

    23

    文章

    3246

    瀏覽量

    114721

原文標題:STM32的SysTick時鐘源來自哪里?

文章出處:【微信號:mcuworld,微信公眾號:嵌入式資訊精選】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    STM32 SYSTICK定時器常見問題

    我們知道,STM32庫函數里通常使用來自內核的系統定時器SYSTICK作為時基,實現計數延時。一般來講,ST公司提供的庫函數里將
    發表于 09-13 16:20 ?3039次閱讀

    STM32SysTick時鐘來自Cortex系統定時器

    置頂/星標公眾號,不錯過每一條消息!有位朋友在后臺大概問了這樣一個問題:STM32SysTick時鐘來自
    發表于 08-19 08:19

    為什么STM32CubeMX中Cortex系統定時器可選擇1分頻

    有位朋友在后臺大概問了這樣一個問題:STM32SysTick時鐘來自Cortex
    發表于 08-19 09:07

    STM32SysTick時鐘

    有位朋友在后臺大概問了這樣一個問題:STM32SysTick時鐘來自Cortex
    發表于 08-19 06:47

    STM32SysTick時鐘到底是從哪來呢

    STM32SysTick時鐘來自哪里?STM32Sys
    發表于 11-24 08:05

    STM32SysTick時鐘來自Cortex系統定時器

    STM32SysTick時鐘來自Cortex系統
    發表于 11-24 07:24

    STM32--SYSTICK超簡易定時器

    當然CORTEX-M3獨有的定時功能可是超級簡單的 那就是SySTick,所謂的系統定時器。配置方式簡單,簡單的不能再簡單,因為
    發表于 03-16 15:47 ?19次下載

    什么是SysTick定時器?實現STM32時鐘系統的詳細資料說明

    什么是SysTick定時器?實現STM32時鐘系統的詳細資料說明主要內容包括了:Systick
    發表于 01-02 08:00 ?3次下載
    什么是<b class='flag-5'>SysTick</b><b class='flag-5'>定時器</b>?實現<b class='flag-5'>STM32</b><b class='flag-5'>時鐘</b><b class='flag-5'>系統</b>的詳細資料說明

    STM32中的SysTick時鐘來自哪里?

    STM32SysTick時鐘來自哪里?
    的頭像 發表于 03-03 14:32 ?7860次閱讀

    STM32入門(十五)----SysTick系統定時器

    Cortex-M內核的單片機都具有這個定時器。《STM32參考手冊》里的一句話:關于Cortex-M3核心、 SysTick
    發表于 12-01 15:06 ?8次下載
    <b class='flag-5'>STM32</b>入門(十五)----<b class='flag-5'>SysTick</b><b class='flag-5'>系統</b><b class='flag-5'>定時器</b>

    SysTick 定時器

    11.1關于 SysTick 定時器SysTick定時器(又名系統滴答定時器)是存在于
    發表于 12-05 14:51 ?9次下載
    <b class='flag-5'>SysTick</b> <b class='flag-5'>定時器</b>

    初學stm32-Systick滴答時鐘定時

    系統的心跳時鐘。這樣可以節省MCU資源,不用浪費一個定時器。比如uCOS中,分時復用,需要一個最小的時間戳,一般在STM32+UCOS系統
    發表于 12-31 19:46 ?15次下載
    初學<b class='flag-5'>stm32-Systick</b>滴答<b class='flag-5'>時鐘</b><b class='flag-5'>定時</b>

    systick定時器 延時計時

    systick定時器是屬于cortex M內核的外設,專門為RTOS的系統時鐘節拍設計的。systick
    發表于 01-18 10:28 ?7次下載
    <b class='flag-5'>systick</b><b class='flag-5'>定時器</b> 延時計時

    STM32SysTick滴答定時器(delay延時函數講解)

    Systick定時器,是一個簡單的定時器,對于CM3、CM4內核芯片,都有Systick定時器Syst
    發表于 02-10 10:35 ?13次下載
    【<b class='flag-5'>STM32</b>】<b class='flag-5'>SysTick</b>滴答<b class='flag-5'>定時器</b>(delay延時函數講解)

    STM32SysTick時鐘來自哪里?

    STM32SysTick時鐘來自哪里?
    的頭像 發表于 10-26 15:58 ?1942次閱讀
    <b class='flag-5'>STM32</b>的<b class='flag-5'>SysTick</b><b class='flag-5'>時鐘</b><b class='flag-5'>源</b><b class='flag-5'>來自</b>哪里?
    主站蜘蛛池模板: 超大号黑吊magnet| 国产成人理在线观看视频| 狠狠射首页| 色综合伊人色综合网站下载| 真实国产精品视频国产网| 永久免费的污视频网站| 忘忧草直播| 亚洲欧美精品无码大片在线观看| 女仆翻身大作战| 中文字幕在线久热精品| 国产中文字幕一区| 向日葵视频app下载18岁以下勿看 香艳69xxxxx有声小说 | 午夜精品久久久久久影视riav| 99er4久久视频精品首页| 久久精品天天爽夜夜爽| 一二三四在线播放免费观看中文版视频| 国产69精品久久久久乱码免费 | 欧美性猛交AAA片免费观看| 影音先锋av色咪影院| 国产中文字幕在线| 亚洲AV无码乱码国产精品品麻豆 | 丰满饥渴老太性hd| 肉肉的各种姿势高H细文| 俄罗斯美女z0z0z0在线| 肉色欧美久久久久久久蜜桃| 朝鲜美女bbwbbw撒尿| 十九岁韩国电影在线观看| 国产成人免费a在线资源| 外国三级片名| 国产午夜福利100集发布| 亚洲精品国产精麻豆久久99| 国内精品伊人久久久久| 一个人免费观看在线视频播放| 久久精品国产欧美成人| 970女主播电台歌曲| 男生扒开美女尿口戳戳| 超碰97超碰在线视频哦| 乌克兰少妇大胆大BBW| 好大太快了快插穿子宫了| 在线 自拍 综合 亚洲 欧美| 男人吃奶摸下挵进去啪啪|