欧美性猛交xxxx免费看_牛牛在线视频国产免费_天堂草原电视剧在线观看免费_国产粉嫩高清在线观看_国产欧美日本亚洲精品一5区

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í)鐘源來自哪里?

黃工的嵌入式技術(shù)圈 ? 來源:黃工的嵌入式技術(shù)圈 ? 2020-03-03 14:32 ? 次閱讀

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

引伸:

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

1寫在前面

看到這個(gè)問題,我在想,這位朋友可能沒有認(rèn)真看手冊,同時(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)真看參考手冊都能找到答案。

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

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

--來自參考手冊

也就是說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)行對比,發(fā)現(xiàn)生成的代碼完全一樣。

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

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

    關(guān)注

    2272

    文章

    10925

    瀏覽量

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

    關(guān)注

    11

    文章

    1747

    瀏覽量

    131835
  • Cortex
    +關(guān)注

    關(guān)注

    2

    文章

    203

    瀏覽量

    46614
  • Systick
    +關(guān)注

    關(guān)注

    0

    文章

    62

    瀏覽量

    13155
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    求助,關(guān)于STM32F030K6低功耗停止模式下SysTick的問題求解

    芯片型號(hào):STM32F030K6 開發(fā)環(huán)境:標(biāo)準(zhǔn)庫 問題:SYSCLK配置的是HSI(PLL選擇HSI也試過)。在調(diào)試停止模式時(shí),發(fā)現(xiàn)只要初始化過程調(diào)用SysTick_Config()函數(shù)配置滴答
    發(fā)表于 07-23 08:11

    STM32F030C8T6進(jìn)入停止模式后所有時(shí)鐘都停止了,為何SysTick還能工作?

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

    為什么FREERTOS不是用SYSTIMER做TICK的時(shí)鐘呢?

    從 MENUCONFIG 看到freertos 的 TICK 時(shí)鐘 默認(rèn)來自 timer0 , 也可選擇TIMER1 。 看文檔介紹ESP32S2 中有 systimer 作用是專用于操作系統(tǒng)
    發(fā)表于 06-21 08:11

    安徽京準(zhǔn)-時(shí)間服務(wù)器(NTP網(wǎng)絡(luò)時(shí)鐘)在醫(yī)療的重要性

    安徽京準(zhǔn)-時(shí)間服務(wù)器(NTP網(wǎng)絡(luò)時(shí)鐘)在醫(yī)療的重要性
    的頭像 發(fā)表于 06-11 10:14 ?439次閱讀

    請問CYT4BF8CDS如何更改PWM時(shí)鐘

    我目前正在使用 CYT4BF8CDS 微控制器的 PWM 模塊。 Pwm_Init() API 具有時(shí)鐘參數(shù),其默認(rèn)時(shí)鐘時(shí)鐘
    發(fā)表于 05-23 06:24

    STM32F030C8T6進(jìn)入停止模式后所有時(shí)鐘都停止了,為何SysTick還能工作?

    我在使用STM32F030C8T6,按照參考手冊的說法,在停止模式全部時(shí)鐘停止。沒有了時(shí)鐘SysTick應(yīng)該也不再工作,但實(shí)際上SysTick
    發(fā)表于 04-16 07:22

    時(shí)鐘到底有多重要?微控制器時(shí)鐘頻率是什么?

    微控制器依賴于其時(shí)鐘。處理器、總線和外圍設(shè)備都使用時(shí)鐘來同步它們的操作。
    的頭像 發(fā)表于 04-15 14:17 ?1089次閱讀

    stm32定時(shí)器時(shí)鐘可以選擇外部的rtc做時(shí)鐘嗎?

    定時(shí)器時(shí)鐘可以選擇外部的rtc做時(shí)鐘,有熟悉的請告知,謝謝
    發(fā)表于 04-07 07:16

    STM32CubeMX 6.5.0時(shí)鐘配置頁面的ADC時(shí)鐘無法配置怎么解決?

    最新版STM32CubeMX 6.5.0,啟動(dòng)ADC功能后,時(shí)鐘配置頁面的ADC時(shí)鐘仍無法配置。STM32CubeMX 6.4.0使用正常
    發(fā)表于 03-25 07:04

    使用STM32H743-ADC設(shè)置PLL2為時(shí)鐘為什么開啟不了?

    我使用stm32H743生成代碼,只使用一個(gè)ADC單通道來采集數(shù)據(jù),時(shí)鐘設(shè)置如下所示 生成代碼之后,增加了輪詢模式和中斷模式,然后將它下載到如下所示的開發(fā)板(STM32H743IIT6)
    發(fā)表于 03-12 08:30

    STM32G HAL庫HAL_init()代碼,為什么SysTick_Config函數(shù)不調(diào)用?

    STM32G HAL庫HAL_init()代碼,為什么SysTick_Config函數(shù)不調(diào)用?
    發(fā)表于 03-12 07:46

    STM32H723進(jìn)不了systick中斷的原因?怎么解決?

    STM32H723ZGT6使用時(shí),無法進(jìn)入systick中斷,導(dǎo)致HSE時(shí)鐘配置不成功,進(jìn)入硬件故障
    發(fā)表于 03-12 07:11

    使用stm32l072cbt6作為系統(tǒng)時(shí)鐘,為什么生成的代碼對于systick的重裝載值是按MSI計(jì)算的?

    首先說一下,我使用的是stm32l072cbt6這款芯片 我的時(shí)鐘設(shè)置如圖 但是生成后,我查代碼發(fā)現(xiàn)systick重裝載值是這樣的 這樣是代表我的系統(tǒng)時(shí)鐘實(shí)際上是MSI嗎,這個(gè)HA
    發(fā)表于 03-12 06:55

    虹科技術(shù)|PTP時(shí)鐘設(shè)備全攻略:從普通時(shí)鐘到透明時(shí)鐘的進(jìn)階之路

    導(dǎo)讀:在現(xiàn)代通信技術(shù),精確時(shí)間同步對于保障網(wǎng)絡(luò)性能至關(guān)重要。PTP(Precision Time Protocol)時(shí)鐘設(shè)備作為實(shí)現(xiàn)高精度時(shí)間同步的關(guān)鍵組件,其配置和選擇對于網(wǎng)絡(luò)架構(gòu)師和工程師
    的頭像 發(fā)表于 02-26 16:19 ?687次閱讀
    虹科技術(shù)|PTP<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>源</b>設(shè)備全攻略:從普通<b class='flag-5'>時(shí)鐘</b>到透明<b class='flag-5'>時(shí)鐘</b>的進(jìn)階之路

    PTP時(shí)鐘設(shè)備全攻略:從普通時(shí)鐘到透明時(shí)鐘的進(jìn)階之路

    在現(xiàn)代通信技術(shù),精確時(shí)間同步對于保障網(wǎng)絡(luò)性能至關(guān)重要。PTP(PrecisionTimeProtocol)時(shí)鐘設(shè)備作為實(shí)現(xiàn)高精度時(shí)間同步的關(guān)鍵組件,其配置和選擇對于網(wǎng)絡(luò)架構(gòu)師和工程師來說至關(guān)重要
    的頭像 發(fā)表于 02-22 08:04 ?1637次閱讀
    PTP<b class='flag-5'>時(shí)鐘</b><b class='flag-5'>源</b>設(shè)備全攻略:從普通<b class='flag-5'>時(shí)鐘</b>到透明<b class='flag-5'>時(shí)鐘</b>的進(jìn)階之路