国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick

這篇具有很好參考價(jià)值的文章主要介紹了【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

SysTick定時(shí)器被捆綁在NVIC中,是一個(gè)簡(jiǎn)單的定時(shí)器,對(duì)于CM3、CM4內(nèi)核芯片,都有Systick定時(shí)器。Systick定時(shí)器常用來(lái)做延時(shí),或者實(shí)時(shí)系統(tǒng)的心跳時(shí)鐘。這樣可以節(jié)省MCU資源,不用浪費(fèi)一個(gè)定時(shí)器。

Systick定時(shí)器就是系統(tǒng)滴答定時(shí)器,一個(gè)24 位的倒計(jì)數(shù)定時(shí)器,計(jì)到0 時(shí),將從RELOAD 寄存器中自動(dòng)重裝載定時(shí)初值。

系統(tǒng)滴答定時(shí)器有4個(gè)寄存器

CTRL SysTick控制及狀態(tài)寄存器(地址:0xE000_E010)
LOAD SysTick重裝載數(shù)值寄存器(地址:0xE000_E014)
VAL SysTick當(dāng)前數(shù)值寄存器(地址:0xE000_E018)
CALIB SysTick校準(zhǔn)數(shù)值寄存器(地址:0xE000_E01C)

時(shí)鐘源

該定時(shí)器的時(shí)鐘源可以是

  • 內(nèi)部時(shí)鐘(FCLK,CM3上的自由運(yùn)行時(shí)鐘)
  • 外部時(shí)鐘( CM3處理器上的STCLK信號(hào))

通過(guò)SysTick控制及狀態(tài)寄存器的第2位來(lái)確定
【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick
STM32的時(shí)鐘樹(shù)
【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick
RCC通過(guò)AHB時(shí)鐘(HCLK)8分頻或者不分頻作為Cortex系統(tǒng)定時(shí)器(SysTick)的外部時(shí)鐘。CLKSOURCE = 0
FCLK是Cortex?-M3的自由運(yùn)行時(shí)鐘。詳情見(jiàn)ARM的Cortex?-M3技術(shù)參考手冊(cè)。CLKSOURCE = 1
由下圖代碼可知,庫(kù)函數(shù)默認(rèn)選擇FCLK時(shí)鐘作為SysTick的時(shí)鐘源

/* SysTick end of count event each 1ms */
RCC_GetClocksFreq(&RCC_Clocks);
SysTick_Config(RCC_Clocks.HCLK_Frequency / 1000); //Systick定時(shí)周期為1ms

【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick

SysTick控制及狀態(tài)寄存器

【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick

SysTick重裝載數(shù)值寄存器

24位的倒計(jì)數(shù)器
【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick

SysTick當(dāng)前數(shù)值寄存器

【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick

SysTick校準(zhǔn)數(shù)值寄存器

【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick

系統(tǒng)滴答定時(shí)器中斷優(yōu)先級(jí)設(shè)置

通過(guò)系統(tǒng)異常優(yōu)先級(jí)寄存器來(lái)設(shè)置系統(tǒng)滴答定時(shí)器的優(yōu)先級(jí)
在設(shè)置優(yōu)先級(jí)之前得確定優(yōu)先級(jí)分組,幾位是搶占式優(yōu)先級(jí),幾位是子優(yōu)先級(jí)。
【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick
系統(tǒng)異常優(yōu)先級(jí)寄存器在C文件中的代碼
core_cm3.h
【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick

直接操作寄存器配置系統(tǒng)滴答定時(shí)器demo

采用STM32F103C8T6單片機(jī),KeilMDK5.32版本

時(shí)鐘配置如下圖
【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick
選用外部時(shí)鐘源(STCLK)即Cortex System timer 頻率為9MHz作為系統(tǒng)滴答定時(shí)器的時(shí)鐘源

系統(tǒng)滴答定時(shí)器定時(shí)時(shí)間為1ms,也就是1KHz,根據(jù)時(shí)鐘源頻率 9MHz/1KHz = 9000;
即系統(tǒng)滴答定時(shí)器重載值為9000-1=8999。

SysTick->LOAD  = 8999;	/* 設(shè)置重載值 */
NVIC_SetPriority (SysTick_IRQn, (1UL << __NVIC_PRIO_BITS) - 1UL);	/* 設(shè)置中斷優(yōu)先級(jí) 15(最低優(yōu)先級(jí)) */
SysTick->VAL   = 0UL;	/* 當(dāng)前計(jì)數(shù)值 */
SysTick->CTRL  |= 0 << 2;	/* 選擇外部時(shí)鐘源 */
SCB->SHP[11] = 0xF0;	/* 設(shè)置搶占式優(yōu)先級(jí)為15 */
SysTick->CTRL  |= 1 << 1;	/* SysTick倒數(shù)計(jì)數(shù)到0時(shí)產(chǎn)生SysTick異常(中斷)請(qǐng)求 */
SysTick->CTRL  |= 1 << 0;	/* 使能SysTick */

HAL庫(kù)配置系統(tǒng)滴答定時(shí)器demo

采用STM32F103C8T6單片機(jī),KeilMDK5.32版本

HAL庫(kù)默認(rèn)采用FCLK作為系統(tǒng)滴答定時(shí)器的時(shí)鐘源72MHz
定時(shí)的時(shí)間為1ms,也就是1KHz,重載值為72000-1=71999
優(yōu)先級(jí)為15
PC13控制LED燈,LED的亮滅指示程序運(yùn)行狀態(tài)

STM32CubeMX配置
【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick
【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick

【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick

主要代碼
【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick
先看序號(hào)1
函數(shù)HAL_Init()調(diào)用HAL_InitTick()來(lái)配置系統(tǒng)滴答定時(shí)器,

HAL_Init()
【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick
HAL_InitTick()調(diào)用HAL_SYSTICK_Config()配置系統(tǒng)滴答定時(shí)器,和設(shè)置系統(tǒng)滴答定時(shí)器的優(yōu)先級(jí)(優(yōu)先級(jí)為15)。

HAL_InitTick()
【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick
HAL_SYSTICK_Config()調(diào)用SysTick_Config()來(lái)進(jìn)行配送系統(tǒng)滴答定時(shí)器

SysTick_Config()
【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick
SysTick_Config()根據(jù)參數(shù)ticks來(lái)設(shè)置重載值,清除當(dāng)前計(jì)數(shù)值,選擇FCLK(72MHz)作為時(shí)鐘源,設(shè)置中斷優(yōu)先級(jí)為15,并使能系統(tǒng)滴答定時(shí)器。

注意:此時(shí)FCLK還不是72MHz,因?yàn)镾TM32的時(shí)鐘樹(shù)相關(guān)的寄存器還未被設(shè)置。

序號(hào)2
SystemClock_Config()調(diào)用了HAL_RCC_ClockConfig()。
HAL_RCC_ClockConfig()配置STM32的時(shí)鐘樹(shù),將FCLK的頻率設(shè)置為72MHz,再次調(diào)用HAL_InitTick()配置系統(tǒng)滴答定時(shí)器

此時(shí)才是真正的配置好了系統(tǒng)滴答定時(shí)器

HAL_RCC_ClockConfig()
【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick
工程文件下載鏈接文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-400212.html

到了這里,關(guān)于【STM32】HAL庫(kù)-系統(tǒng)滴答定時(shí)器SysTick的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • STM32F407 滴答定時(shí)器

    STM32F407 滴答定時(shí)器

    介紹STM32F407滴答定時(shí)器配置方法、使用方式,封裝延時(shí)函數(shù)得到精確的時(shí)間。 STM32F407參考手冊(cè)中第10章介紹了滴答定時(shí)器的校準(zhǔn)值。 M4權(quán)威指南介紹滴答定時(shí)器的章節(jié),M3權(quán)威指南中與M4權(quán)威指南中的介紹一樣。 在sys.c文件中增加滴答定時(shí)器的代碼 在delay.c文件增加以下代碼

    2024年02月11日
    瀏覽(30)
  • STM32 F103C8T6學(xué)習(xí)筆記4:時(shí)鐘樹(shù)、滴答計(jì)時(shí)器、定時(shí)器定時(shí)中斷

    STM32 F103C8T6學(xué)習(xí)筆記4:時(shí)鐘樹(shù)、滴答計(jì)時(shí)器、定時(shí)器定時(shí)中斷

    今日理解一下STM32F103 C8T6的時(shí)鐘與時(shí)鐘系統(tǒng)、滴答計(jì)時(shí)器、定時(shí)器計(jì)時(shí)中斷的配置,文章提供原理,代碼,測(cè)試工程下載。 目錄 時(shí)鐘樹(shù)與時(shí)鐘系統(tǒng): 滴答計(jì)時(shí)器: 定時(shí)器計(jì)時(shí)中斷: 測(cè)試結(jié)果: 測(cè)試工程下載: 該系統(tǒng)介紹在 STM32F10x-中文參考手冊(cè) P56頁(yè)開(kāi)始 微控制器的時(shí)鐘系

    2024年02月13日
    瀏覽(32)
  • 基于STM32的定時(shí)器--定時(shí)中斷(HAL庫(kù))

    基于STM32的定時(shí)器--定時(shí)中斷(HAL庫(kù))

    本文旨在介紹如何使用STM32CubeMX配置+KEIL 5開(kāi)發(fā)一個(gè)每10us定時(shí)器中斷觸發(fā)一次的項(xiàng)目。幫助初學(xué)者入門STM32的定時(shí)器使用。 定時(shí)器是STM32微控制器中非常重要的功能模塊之一,用于計(jì)時(shí)、生成精確的時(shí)間延遲、觸發(fā)事件等。STM32微控制器通常具有多個(gè)定時(shí)器模塊,包括通用定時(shí)

    2024年02月14日
    瀏覽(23)
  • STM32 HAL庫(kù)-定時(shí)器中斷

    STM32 HAL庫(kù)-定時(shí)器中斷

    關(guān)閉或開(kāi)啟所有中斷;代碼如下: STM32F407 有眾多的定時(shí)器,其中包括 2 個(gè)基本定時(shí)器(TIM6 和 TIM7)、10 個(gè)通用定時(shí) 器(TIM2 ~ TIM5、TIM9 ~TIM14)、2 個(gè)高級(jí)控制定時(shí)器(TIM1 和 TIM8),這些定時(shí)器彼此完 全獨(dú)立,不共享任何資源。 選擇定時(shí)器,配置時(shí)鐘源,設(shè)置預(yù)分頻系數(shù),計(jì)

    2024年01月25日
    瀏覽(23)
  • stm32——hal庫(kù)學(xué)習(xí)筆記(定時(shí)器)

    stm32——hal庫(kù)學(xué)習(xí)筆記(定時(shí)器)

    使用純軟件(CPU死等)的方式實(shí)現(xiàn)定時(shí)(延時(shí))功能 使用精準(zhǔn)的時(shí)基,通過(guò)硬件的方式,實(shí)現(xiàn)定時(shí)功能 遞增計(jì)數(shù)模式實(shí)例說(shuō)明 中心對(duì)齊模式實(shí)例說(shuō)明 TIM6 和TIM7 控制寄存器 1(TIMx_CR1) TIM6 和TIM7 DMA/中斷使能寄存器(TIMx_DIER) TIM6 和TIM7 狀態(tài)寄存器(TIMx_SR) TIM6 和TIM7 計(jì)數(shù)器(TIMx_CNT)

    2024年02月21日
    瀏覽(30)
  • # HAL庫(kù)STM32常用外設(shè)教程(四)—— 定時(shí)器 基本定時(shí)

    # HAL庫(kù)STM32常用外設(shè)教程(四)—— 定時(shí)器 基本定時(shí)

    1、STM32F407ZGT6 2、STM32CubeMx軟件 3、keil5 內(nèi)容簡(jiǎn)述: 通篇文章將涉及以下內(nèi)容,如有錯(cuò)誤,歡迎指出 : 1、基礎(chǔ)定時(shí)器特性 2、基礎(chǔ)定時(shí)器的結(jié)構(gòu)和功能 3、基礎(chǔ)定時(shí)器HAL庫(kù)驅(qū)動(dòng)程序 (1)CubeMx配置 (2)TIM驅(qū)動(dòng)程序 ??STM32F407有2個(gè)高級(jí)控制定時(shí)器(TIM1、TIM8)、8個(gè)通用定時(shí)器和

    2024年02月02日
    瀏覽(22)
  • STM32 HAL庫(kù) STM32CubeMX -- TIM(定時(shí)器中斷)

    STM32 HAL庫(kù) STM32CubeMX -- TIM(定時(shí)器中斷)

    STM32F1 系列中,除了一些特殊的型號(hào),大部分F1有8 個(gè)定時(shí)器,分為 基本定時(shí)器,通用定時(shí)器和高級(jí)定時(shí)器 。 基本定時(shí)器TIM6 和TIM7 是一個(gè)16 位的只能向上計(jì)數(shù)的定時(shí)器,只能定時(shí),沒(méi)有外部IO。 通用定時(shí)器TIM2/3/4/5 是一個(gè)16 位的可以向上/下計(jì)數(shù)的定時(shí)器,可以定時(shí),可以輸出

    2024年02月16日
    瀏覽(18)
  • STM32 HAL庫(kù)開(kāi)發(fā)——入門篇(2):定時(shí)器

    STM32 HAL庫(kù)開(kāi)發(fā)——入門篇(2):定時(shí)器

    一、TIMER定時(shí)器概述 1.1 軟件定時(shí)原理 1.2 定時(shí)器定時(shí)原理 1.3 STM32定時(shí)器分類 1.4 STM32定時(shí)器特性表 1.5 STM32基本、通用、高級(jí)定時(shí)器功能整體的區(qū)別 二、基本定時(shí)器 2.1 基本定時(shí)器簡(jiǎn)介 2.3 STM32定時(shí)器計(jì)數(shù)模式及溢出條件 2.4 定時(shí)器中斷實(shí)驗(yàn)相關(guān)寄存器 2.5 定時(shí)器溢出時(shí)間計(jì)算方

    2024年02月10日
    瀏覽(24)
  • STM32 hal庫(kù)編程定時(shí)器計(jì)數(shù)清零

    1、stm32定時(shí)器是有重裝載功能的,所以定時(shí)器中斷不關(guān)的話,就不需要計(jì)數(shù)清零 2、主要是應(yīng)對(duì)單次計(jì)時(shí)使用,可能因?yàn)闆](méi)有清零導(dǎo)致程序再次運(yùn)行到相同位置時(shí),中斷立即出發(fā),沒(méi)有完成計(jì)時(shí)的功能。 順便加一個(gè)讀取定時(shí)器計(jì)數(shù)值得函數(shù)

    2024年02月03日
    瀏覽(33)
  • STM32 HAL庫(kù) STM32CubeMX -- TIM(定時(shí)器輸入捕獲)

    STM32 HAL庫(kù) STM32CubeMX -- TIM(定時(shí)器輸入捕獲)

    輸入捕獲可以對(duì) 輸入的信號(hào)的上升沿、下降沿或者雙邊沿進(jìn)行捕獲 ,常用的有 測(cè)量輸入信號(hào)的脈寬 和 測(cè)量PWM 輸入信號(hào)的頻率 和 占空比 這兩種。 輸入捕獲的原理 就是,當(dāng)捕獲到信號(hào)的跳變沿的時(shí)候,把計(jì)數(shù)器CNT 的值鎖存到捕獲寄存器CCR 中,把前后兩次捕獲到的CCR 寄存

    2023年04月14日
    瀏覽(18)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包