一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STM32的SysTick時(shí)鐘源是來自Cortex系統(tǒng)定時(shí)器嗎?

5RJg_mcuworld ? 來源:lp ? 2019-04-03 13:54 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

有位朋友在后臺(tái)大概問了這樣一個(gè)問題:STM32的SysTick時(shí)鐘源是來自Cortex系統(tǒng)定時(shí)器嗎?

引伸:

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

1寫在前面

看到這個(gè)問題,我在想,這位朋友可能沒有認(rèn)真看手冊(cè),同時(shí)也存在一個(gè)誤區(qū)。

我順便也搜索了一下,網(wǎng)上很多文章都說到:SysTick時(shí)鐘源是來自Cortex系統(tǒng)定時(shí)器,就是那個(gè)有8分頻的時(shí)鐘

但是,我們實(shí)際應(yīng)用中,SysTick時(shí)鐘源真的是來自這個(gè)Cortex系統(tǒng)定時(shí)器嗎?

2

SysTick時(shí)鐘初始化代碼

不管是使用標(biāo)準(zhǔn)外設(shè)庫,還是HAL庫,你初始化SysTick,都會(huì)調(diào)用內(nèi)核中的SysTick_Config函數(shù)。

比如:

SysTick_Config(SystemCoreClock / 1000);

初始化調(diào)用這段代碼之后,SysTick將會(huì)實(shí)現(xiàn)1ms中斷一次。

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

3

SysTick時(shí)鐘源是來自哪里?

這個(gè)問題只要認(rèn)真看參考手冊(cè)都能找到答案。

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

通過對(duì)SysTick控制與狀態(tài)寄存器的設(shè)置,可選擇上述時(shí)鐘或Cortex(HCLK)時(shí)鐘作為SysTick時(shí)鐘。

--來自參考手冊(cè)

也就是說SysTick時(shí)鐘源可以來自兩個(gè)地方:

AHB時(shí)鐘8分頻

HCLK(內(nèi)核)時(shí)鐘

通過SysTick控制與狀態(tài)寄存器的設(shè)置進(jìn)行選擇時(shí)鐘源。

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

再次看SysTick_Config函數(shù)源碼:

__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 */}

你會(huì)發(fā)現(xiàn),其實(shí)源碼已經(jīng)默認(rèn)使用HCLK(內(nèi)核)時(shí)鐘。

而SysTick_Config函數(shù)屬于內(nèi)核(如core_cm3.h)已經(jīng)寫好源碼,一般我們不去修改。

所以,到這里,你會(huì)明白:SysTick時(shí)鐘源其實(shí)就是用的HCLK(內(nèi)核)時(shí)鐘。

4

STM32CubeMX...可選擇1分頻

分析上面問題的時(shí)候,我突然發(fā)現(xiàn)一個(gè)問題:為什么STM32CubeMX中Cortex系統(tǒng)定時(shí)器可選擇1分頻(和8分頻)?

(使用STM32CubeMX V5.1.0)

我通過配置1分頻和8分頻,各自生成代碼,進(jìn)行對(duì)比,發(fā)現(xiàn)生成的代碼完全一樣。

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

這里就留下一個(gè)問題:

你認(rèn)為STM32CubeMX配置Cortex系統(tǒng)定時(shí)器時(shí)鐘是有Bug嗎?

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • STM32
    +關(guān)注

    關(guān)注

    2293

    文章

    11032

    瀏覽量

    364999
  • 時(shí)鐘
    +關(guān)注

    關(guān)注

    11

    文章

    1901

    瀏覽量

    133237
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3298

    瀏覽量

    118952

原文標(biāo)題:STM32的SysTick時(shí)鐘源來自哪里?

文章出處:【微信號(hào):mcuworld,微信公眾號(hào):嵌入式資訊精選】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    STM32 SYSTICK定時(shí)器常見問題

    我們知道,STM32庫函數(shù)里通常使用來自內(nèi)核的系統(tǒng)定時(shí)器SYSTICK作為時(shí)基,實(shí)現(xiàn)計(jì)數(shù)延時(shí)。一般來講,ST公司提供的庫函數(shù)里將
    發(fā)表于 09-13 16:20 ?3515次閱讀

    STM32SysTick時(shí)鐘來自Cortex系統(tǒng)定時(shí)器

    置頂/星標(biāo)公眾號(hào),不錯(cuò)過每一條消息!有位朋友在后臺(tái)大概問了這樣一個(gè)問題:STM32SysTick時(shí)鐘來自
    發(fā)表于 08-19 08:19

    為什么STM32CubeMX中Cortex系統(tǒng)定時(shí)器可選擇1分頻

    有位朋友在后臺(tái)大概問了這樣一個(gè)問題:STM32SysTick時(shí)鐘來自Cortex
    發(fā)表于 08-19 09:07

    STM32SysTick時(shí)鐘

    有位朋友在后臺(tái)大概問了這樣一個(gè)問題:STM32SysTick時(shí)鐘來自Cortex
    發(fā)表于 08-19 06:47

    STM32SysTick時(shí)鐘到底是從哪來呢

    STM32SysTick時(shí)鐘來自哪里?STM32Sys
    發(fā)表于 11-24 08:05

    STM32SysTick時(shí)鐘來自Cortex系統(tǒng)定時(shí)器

    STM32SysTick時(shí)鐘來自Cortex系統(tǒng)
    發(fā)表于 11-24 07:24

    STM32--SYSTICK超簡易定時(shí)器

    當(dāng)然CORTEX-M3獨(dú)有的定時(shí)功能可是超級(jí)簡單的 那就是SySTick,所謂的系統(tǒng)定時(shí)器。配置方式簡單,簡單的不能再簡單,因?yàn)?/div>
    發(fā)表于 03-16 15:47 ?19次下載

    什么是SysTick定時(shí)器?實(shí)現(xiàn)STM32時(shí)鐘系統(tǒng)的詳細(xì)資料說明

    什么是SysTick定時(shí)器?實(shí)現(xiàn)STM32時(shí)鐘系統(tǒng)的詳細(xì)資料說明主要內(nèi)容包括了:Systick
    發(fā)表于 01-02 08:00 ?3次下載
    什么是<b class='flag-5'>SysTick</b><b class='flag-5'>定時(shí)器</b>?實(shí)現(xiàn)<b class='flag-5'>STM32</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>系統(tǒng)</b>的詳細(xì)資料說明

    STM32中的SysTick時(shí)鐘來自哪里?

    STM32SysTick時(shí)鐘來自哪里?
    的頭像 發(fā)表于 03-03 14:32 ?8321次閱讀

    STM32入門(十五)----SysTick系統(tǒng)定時(shí)器

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

    SysTick 定時(shí)器

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

    初學(xué)stm32-Systick滴答時(shí)鐘定時(shí)

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

    systick定時(shí)器 延時(shí)計(jì)時(shí)

    systick定時(shí)器是屬于cortex M內(nèi)核的外設(shè),專門為RTOS的系統(tǒng)時(shí)鐘節(jié)拍設(shè)計(jì)的。systick
    發(fā)表于 01-18 10:28 ?7次下載
    <b class='flag-5'>systick</b><b class='flag-5'>定時(shí)器</b> 延時(shí)計(jì)時(shí)

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

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

    STM32SysTick時(shí)鐘來自哪里?

    STM32SysTick時(shí)鐘來自哪里?
    的頭像 發(fā)表于 10-26 15:58 ?2621次閱讀
    <b class='flag-5'>STM32</b>的<b class='flag-5'>SysTick</b><b class='flag-5'>時(shí)鐘</b><b class='flag-5'>源</b><b class='flag-5'>來自</b>哪里?