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

stm32的學(xué)習(xí)——SysTick定時(shí)器的使用

這篇具有很好參考價(jià)值的文章主要介紹了stm32的學(xué)習(xí)——SysTick定時(shí)器的使用。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、Systick定時(shí)器

1、SysTick定時(shí)器簡(jiǎn)介

SysTick定時(shí)器也稱為滴答定時(shí)器,SysTick定時(shí)器是內(nèi)核中的一個(gè)外設(shè),內(nèi)嵌在NVIC(嵌套向量中斷控制器)里面,在cortex M3、M4中都存在,很方便用戶移植。

雖然我用的是cortex M4的內(nèi)核,但是他的內(nèi)核文檔在這方面和Cortex M3的相似。

所以我這里參考了M3的內(nèi)核中文文檔。M3和M4內(nèi)核文檔——密碼:0423。

注意:因?yàn)镾ystick定時(shí)器是內(nèi)核外設(shè),所以在STM32F4中文參考手冊(cè)是找不到的,可以參考Cortex M3權(quán)威指南(第8章) + M3/M4內(nèi)核權(quán)威指南(9.5章節(jié))。

stm32 systick,stm32,學(xué)習(xí),嵌入式硬件

?Systick定時(shí)器是一個(gè)24bit的倒計(jì)時(shí)(向下計(jì)數(shù))定時(shí)器,功能就是實(shí)現(xiàn)簡(jiǎn)單的延時(shí)。

24位向下計(jì)數(shù)定時(shí)器。

2、SysTick時(shí)鐘源

SysTick定時(shí)器有兩個(gè)時(shí)鐘源可以選擇,具體可以參考下圖中的中文手冊(cè)的時(shí)鐘樹(shù)。(stm32f4xx中文手冊(cè))密碼同上。

stm32 systick,stm32,學(xué)習(xí),嵌入式硬件

?我們主要看粉色虛線框中的內(nèi)容,從左往右看,首先是AHBPRESC/1,...,512這一個(gè)輸出的AHB頻率為168MHz,向上分為兩個(gè)方向,一個(gè)是到Cortex 系統(tǒng)定時(shí)器,一個(gè)是FCLK Cortex自由運(yùn)行時(shí)鐘,這兩個(gè)時(shí)鐘源都可以作為SysTick定時(shí)器的時(shí)鐘源。這兩個(gè)的頻率分別是8分頻:21MHz和沒(méi)有分頻的168MHz。

也可以參考stm32CubeMX中的圖片:

stm32 systick,stm32,學(xué)習(xí),嵌入式硬件

?讓我們思考一下為什么要分頻呢?為什么有不同頻率的時(shí)鐘源?

因?yàn)檫x擇不同頻率的時(shí)鐘源會(huì)影響延時(shí)的長(zhǎng)短。

如果選擇168MHz的時(shí)鐘源作為SysTick的時(shí)鐘源,168MHz:1s震蕩168 000 000次,也就是1us(1s == 1 000 000 us)震蕩168次,而我們的SysTick定時(shí)器是一個(gè)24位的向下計(jì)數(shù)定時(shí)器。所以最多計(jì)數(shù)2^24-1(從零開(kāi)始計(jì)數(shù),所以要減一),所以可以算出最大延時(shí)時(shí)間:99.864ms

計(jì)算過(guò)程:2^24/168 = 99864.380952380952380952380952381us = 99.864ms

如果選擇21MHz作為時(shí)鐘源,則1s震蕩21 000 000次,所以1us 震蕩 21次,最大延時(shí)時(shí)間:

2^24/21 =?798,915.04761904761904761904761905 us = 798.915 ms

關(guān)于Systick定時(shí)器的寄存器說(shuō)明以及函數(shù)接口都存儲(chǔ)在內(nèi)核文件misc.c以及misc.h,同時(shí)在core_cm4.h頁(yè)定了關(guān)于Systick定時(shí)器的內(nèi)容。

內(nèi)核中提供了一個(gè)函數(shù)接口可以去修改Systick的時(shí)鐘源? 函數(shù)為 SysTick_CLKSourceConfig()

stm32 systick,stm32,學(xué)習(xí),嵌入式硬件

我們來(lái)講一下?SysTick_CLKSourceConfig()這個(gè)函數(shù):

函數(shù)原型

void SysTick_CLKSourceConfig(uint32_t SysTick_CLKSource)

函數(shù)參數(shù)

參數(shù)一:SysTick_CLKSource?? 選擇時(shí)鐘源? 一般選SysTick_CLKSource_HCLK_Div8?? 21MHZ

@brief配置SysTick時(shí)鐘源。

@param SysTick_CLKsource: SysTick時(shí)鐘源。該參數(shù)可以是以下值之一:

????????@arg SysTick_CLKSource_HCLK_Div8:選擇AHB時(shí)鐘除以8作為SysTick時(shí)鐘源

????????@arg SysTick_CLKSource_HCLK:選擇AHB時(shí)鐘作為SysTick時(shí)鐘源。

@retval 無(wú)

3、SysTick定時(shí)器的應(yīng)用

內(nèi)核提供兩種方案來(lái)使用systick定時(shí)器,分別是 中斷方式 + 非中斷方式

①中斷方式:

stm32 systick,stm32,學(xué)習(xí),嵌入式硬件

?第一步:設(shè)置Systick的中斷周期(SysTick_Config函數(shù))

stm32 systick,stm32,學(xué)習(xí),嵌入式硬件

?讓我們分析一下這個(gè)SysTick_Config函數(shù):

函數(shù)原型:__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)

函數(shù)參數(shù)分析:

stm32 systick,stm32,學(xué)習(xí),嵌入式硬件

?ticks是兩個(gè)中斷中的滴答數(shù),我們回頭看內(nèi)核文檔:

stm32 systick,stm32,學(xué)習(xí),嵌入式硬件

滴答數(shù) = 時(shí)鐘源 / 時(shí)間,假如中斷周期為1us,時(shí)鐘源為168MHz,則ticks = 168 000 000 / 1 000 000 = 168

第二步:編寫(xiě)延時(shí)函數(shù)

stm32 systick,stm32,學(xué)習(xí),嵌入式硬件

?文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-762839.html

第三步:在Systick中斷服務(wù)函數(shù)中修改中斷次數(shù)

stm32 systick,stm32,學(xué)習(xí),嵌入式硬件?

?②非中斷方式:

直接操作Systick定時(shí)器的4個(gè)寄存器,使用流程如下

stm32 systick,stm32,學(xué)習(xí),嵌入式硬件

stm32 systick,stm32,學(xué)習(xí),嵌入式硬件?

stm32 systick,stm32,學(xué)習(xí),嵌入式硬件?

?

到了這里,關(guān)于stm32的學(xué)習(xí)——SysTick定時(shí)器的使用的文章就介紹完了。如果您還想了解更多內(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)文章

  • HAL STM32基于系統(tǒng)滴答定時(shí)器(SysTick)實(shí)現(xiàn)多任務(wù)時(shí)間片輪詢

    HAL STM32基于系統(tǒng)滴答定時(shí)器(SysTick)實(shí)現(xiàn)多任務(wù)時(shí)間片輪詢

    ??RTOS(實(shí)時(shí)操作系統(tǒng))和定時(shí)器時(shí)間片輪詢是兩種不同的任務(wù)調(diào)度和執(zhí)行方式的差異簡(jiǎn)介 ?? 以下部分內(nèi)容,由AI給出的解答: ??RTOS(實(shí)時(shí)操作系統(tǒng)): ??RTOS是一種專門設(shè)計(jì)用于實(shí)時(shí)系統(tǒng)的操作系統(tǒng),它可以有效地管理多個(gè)任務(wù),提供任務(wù)調(diào)度、同步和通信等功能。 ??

    2024年02月21日
    瀏覽(20)
  • 【HAL庫(kù)】STM32CubeMX開(kāi)發(fā)----非阻塞延時(shí)實(shí)驗(yàn)----SysTick(滴答定時(shí)器)中斷

    【HAL庫(kù)】STM32CubeMX開(kāi)發(fā)----非阻塞延時(shí)實(shí)驗(yàn)----SysTick(滴答定時(shí)器)中斷

    STM32CubeMX 下載和安裝 詳細(xì)教程 【HAL庫(kù)】STM32CubeMX開(kāi)發(fā)----STM32F103/F207/F407----目錄 HAL庫(kù) 有自帶的 ms級(jí) 延時(shí)函數(shù): HAL_Delay(); 缺點(diǎn): 這是 阻塞延時(shí) 方式,就是延時(shí)期間,什么都不能干,這樣很浪費(fèi)資源。 這篇文章主要介紹,利用 SysTick(滴答定時(shí)器)中斷 實(shí)現(xiàn) 非阻塞延時(shí) 的實(shí)驗(yàn)

    2024年02月16日
    瀏覽(96)
  • 【STM32筆記】低功耗模式、WFI命令等進(jìn)入不了休眠的可能原因(系統(tǒng)定時(shí)器SysTick一直產(chǎn)生中斷)

    【STM32筆記】低功耗模式、WFI命令等進(jìn)入不了休眠的可能原因(系統(tǒng)定時(shí)器SysTick一直產(chǎn)生中斷)

    【STM32】低功耗模式、WFI命令等進(jìn)入不了休眠的可能原因(系統(tǒng)定時(shí)器SysTick一直產(chǎn)生中斷) 【STM32筆記】低功耗模式配置及避坑匯總 前文: blog.csdn.net/weixin_53403301/article/details/128216064 【STM32筆記】HAL庫(kù)低功耗模式配置(ADC喚醒無(wú)法使用、低功耗模式無(wú)法燒錄解決方案) __WFI

    2024年02月10日
    瀏覽(119)
  • 如何開(kāi)關(guān)Systick定時(shí)器的中斷使能?

    如何開(kāi)關(guān)Systick定時(shí)器的中斷使能?

    我們知道,STM32芯片里的ARM處理器都集成了1個(gè)24位向下計(jì)數(shù)的具備自動(dòng)重裝功能的SYSTICK定時(shí)器,功能比較單純,就是計(jì)數(shù)定時(shí)。它常用來(lái)作為OS的滴答時(shí)鐘,或者作為基本的計(jì)數(shù)時(shí)基。比方在各個(gè)RTOS系統(tǒng)里往往把SYSTICK作為滴答時(shí)鐘,對(duì)于OS來(lái)講,用它做時(shí)基可以提高代碼移植

    2024年02月13日
    瀏覽(12)
  • ARM Cortex-M處理器中的SysTick定時(shí)器簡(jiǎn)介

    ARM Cortex-M處理器中的SysTick是一個(gè)內(nèi)部的系統(tǒng)定時(shí)器,它提供了一種簡(jiǎn)單而有效的方式來(lái)生成定時(shí)的中斷請(qǐng)求。SysTick定時(shí)器是一個(gè)24位的下計(jì)數(shù)定時(shí)器,它可以配置為周期性地產(chǎn)生中斷,這些中斷可以用于操作系統(tǒng)的任務(wù)調(diào)度、性能測(cè)量、時(shí)間延遲等。 SysTick定時(shí)器的主要特點(diǎn)

    2024年04月28日
    瀏覽(92)
  • 【致敬未來(lái)的攻城獅計(jì)劃】— 連續(xù)打卡第十六天:FSP固件庫(kù)系統(tǒng)定時(shí)器(滴答定時(shí)器SysTick)每2秒LED閃爍一次

    【致敬未來(lái)的攻城獅計(jì)劃】— 連續(xù)打卡第十六天:FSP固件庫(kù)系統(tǒng)定時(shí)器(滴答定時(shí)器SysTick)每2秒LED閃爍一次

    1.連續(xù)打卡第一天:提前對(duì)CPK_RA2E1是瑞薩RA系列開(kāi)發(fā)板的初體驗(yàn),了解一下 2.開(kāi)發(fā)環(huán)境的選擇和調(diào)試(從零開(kāi)始,加油) 3.欲速則不達(dá),今天是對(duì)RA2E1 基礎(chǔ)知識(shí)的補(bǔ)充學(xué)習(xí)。 4.e2 studio 使用教程 5.Keil配置使用(使用 RASC 生成 Keil 工程) 6.Keil配置使用(使用 RASC 生成 Keil 工程)

    2024年02月01日
    瀏覽(22)
  • 【STM32】STM32學(xué)習(xí)筆記-定時(shí)器定時(shí)中斷 定時(shí)器外部時(shí)鐘(14)

    【STM32】STM32學(xué)習(xí)筆記-定時(shí)器定時(shí)中斷 定時(shí)器外部時(shí)鐘(14)

    1.1 TIM_InternalClockConfig 1.2 TIM_TimeBaseInit 1.3 TIM_TimeBaseInitTypeDef 1.4 TIM_ClearFlag 1.5 TIM_ITConfig 1.6 TIM_Cmd 1.7 中斷服務(wù)函數(shù) 參考程序 1.8 TIM_ETRClockMode2Config timer.h timer.c main.c timer.h timer.c main.c 09-定時(shí)器定時(shí)中斷.rar 10-定時(shí)器外部時(shí)鐘.rar 參考: 【STM32】江科大STM32學(xué)習(xí)筆記匯總

    2024年02月03日
    瀏覽(97)
  • STM32學(xué)習(xí)--定時(shí)器中斷

    STM32學(xué)習(xí)--定時(shí)器中斷

    目錄 ?概述 一、STM32 通用定時(shí)器簡(jiǎn)介 1.1 STM32定時(shí)器定時(shí)原理? 1.2?STM32 通用定時(shí)器相關(guān)寄存器簡(jiǎn)介 1.3?定時(shí)器功能描述 1.4計(jì)數(shù)器模式 二、定時(shí)器中斷庫(kù)函數(shù) 2.1 步驟總結(jié) 2.2 庫(kù)函數(shù)講解 總結(jié): ????????這一章,我們將向大家介紹如何使用 STM32F1 系列 的通用定時(shí)器。 TIM

    2024年02月02日
    瀏覽(17)
  • 【STM32】定時(shí)器詳細(xì)學(xué)習(xí)

    【STM32】定時(shí)器詳細(xì)學(xué)習(xí)

    定時(shí)器介紹 HAL庫(kù)外設(shè)模塊設(shè)計(jì)方法 外設(shè)通用接口函數(shù)設(shè)計(jì) 定時(shí)/計(jì)數(shù)功能 時(shí)基單元 外部脈沖計(jì)數(shù) 定時(shí)器的核心就是一個(gè)計(jì)數(shù)器模塊,可以進(jìn)行加一或減一計(jì)數(shù)。每出現(xiàn)一個(gè)計(jì)數(shù)信號(hào),計(jì)數(shù)器的值就自動(dòng)加一或減一。當(dāng)計(jì)數(shù)值從0遞增到最大值或者從最大值遞減到0時(shí),定時(shí)器

    2024年02月05日
    瀏覽(19)
  • 【STM32】學(xué)習(xí)筆記(TIM定時(shí)器)

    【STM32】學(xué)習(xí)筆記(TIM定時(shí)器)

    定時(shí)器可以對(duì)輸入的時(shí)鐘進(jìn)行計(jì)數(shù),并在計(jì)數(shù)值達(dá)到設(shè)定值時(shí)觸發(fā)中斷 16位計(jì)數(shù)器、預(yù)分頻器、自動(dòng)重裝寄存器的時(shí)基單元,在72MHz計(jì)數(shù)時(shí)鐘下可以實(shí)現(xiàn)最大59.65s的定時(shí) 不僅具備基本的定時(shí)中斷功能,而且還包含內(nèi)外時(shí)鐘源選擇、輸入捕獲、輸出比較、編碼器接口、主從觸發(fā)

    2024年02月09日
    瀏覽(25)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包