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

STM32—系統(tǒng)定時器

這篇具有很好參考價值的文章主要介紹了STM32—系統(tǒng)定時器。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.SysTick簡介

SysTick是一種系統(tǒng)定時器,可以用于實現(xiàn)操作系統(tǒng)、任務(wù)調(diào)度、時鐘管理等功能。它通常集成在微控制器中,并且是硬件實現(xiàn)的,具有高精度和可靠性。

在ARM Cortex-M處理器中,SysTick定時器可以配置為計數(shù)器模式或外部時鐘模式。在計數(shù)器模式下,SysTick定時器使用內(nèi)部時鐘作為時基,可以產(chǎn)生中斷,以實現(xiàn)系統(tǒng)的定時功能和任務(wù)調(diào)度。在外部時鐘模式下,SysTick定時器使用外部時鐘信號作為時基,可以用于協(xié)調(diào)外部設(shè)備的時序和同步。

SysTick定時器通常具有以下特點:

1. 高精度:SysTick定時器通??梢蕴峁└呔鹊挠嫊r功能,以滿足實時應(yīng)用的要求。

2. 靈活性:SysTick定時器可以通過軟件配置來適應(yīng)不同的應(yīng)用場景和需求。

3. 可編程性:SysTick定時器可以通過編程來實現(xiàn)各種定時功能,例如系統(tǒng)節(jié)拍、超時檢測、延時等。

2.SysTick使用方法

STM32系列微控制器中的SysTick定時器可以用于實現(xiàn)系統(tǒng)的定時功能和任務(wù)調(diào)度。以下是使用SysTick的基本步驟:

1. 啟用SysTick定時器

首先需要啟用SysTick定時器,通過設(shè)置SysTick控制和狀態(tài)寄存器(STK_CTRL)的ENABLE位為1來完成??梢允褂靡韵麓a片段實現(xiàn):

SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;

2. 配置SysTick時鐘源

SysTick定時器可以使用內(nèi)部時鐘(CPU時鐘)或外部時鐘作為時基。通過設(shè)置SysTick控制和狀態(tài)寄存器的CLKSOURCE位來選擇時鐘源。例如,要使用CPU時鐘作為時基,可以使用以下代碼片段:

SysTick->CTRL |= SysTick_CTRL_CLKSOURCE_Msk;

3. 配置定時周期

SysTick定時器以一個固定的頻率遞減計數(shù),當(dāng)計數(shù)達到零時會觸發(fā)中斷。可以通過設(shè)置SysTick重載值寄存器(STK_LOAD)來配置定時周期。例如,要設(shè)置定時周期為1毫秒,可以使用以下代碼片段(假設(shè)使用的時鐘頻率為72MHz):

SysTick->LOAD = 72000-1; // 72MHz / 1000Hz - 1

4. 啟用中斷

如果需要在定時周期結(jié)束時觸發(fā)中斷,可以設(shè)置SysTick控制和狀態(tài)寄存器的TICKINT位為1。例如,要啟用中斷,可以使用以下代碼片段:

SysTick->CTRL |= SysTick_CTRL_TICKINT_Msk;

5. 中斷處理

在定時周期結(jié)束時,SysTick定時器會觸發(fā)中斷??梢跃帉懼袛嗵幚砗瘮?shù)來執(zhí)行相應(yīng)的操作。例如,在Cortex-M系列處理器中,可以使用以下方式定義SysTick中斷處理函數(shù):

void SysTick_Handler(void)
{
    // 在這里執(zhí)行需要定時的任務(wù)
}

6. 啟動定時器

最后,通過設(shè)置SysTick控制和狀態(tài)寄存器的ENABLE位為1來啟動定時器。例如,可以使用以下代碼片段:

SysTick->CTRL |= SysTick_CTRL_ENABLE_Msk;

通過以上步驟,就可以使用SysTick定時器實現(xiàn)系統(tǒng)的定時功能和任務(wù)調(diào)度了。需要根據(jù)具體的需求進行配置和使用,例如調(diào)整定時周期、啟用/禁用中斷等。請注意,具體的寄存器名稱和位定義可能因STM32系列型號而有所差異,請查閱相關(guān)的參考手冊獲取準確的信息。

3.SysTick定時器實例

?由于SysTick定時器是內(nèi)核里面的外設(shè),所以需要包含頭文件“core_cm3.h”。

1.?SysTick_Config

static __INLINE uint32_t SysTick_Config(uint32_t ticks)
{ 
  //reload寄存器位24bit,最大值為2^24
  if (ticks > SysTick_LOAD_RELOAD_Msk)  return (1);            
  
  //配置reload寄存器的初始值                                                             
  SysTick->LOAD  = (ticks & SysTick_LOAD_RELOAD_Msk) - 1; 

  //配置中斷優(yōu)先級為1<<4-1 =15,優(yōu)先級為最低     
  NVIC_SetPriority (SysTick_IRQn, (1<<__NVIC_PRIO_BITS) - 1);  

  //配置counter計數(shù)器的值
  SysTick->VAL   = 0;        

  //分別配置systick的時鐘為72M,使能中斷,使能systick                                  
  SysTick->CTRL  = SysTick_CTRL_CLKSOURCE_Msk | 
                   SysTick_CTRL_TICKINT_Msk   | 
                   SysTick_CTRL_ENABLE_Msk;                    
  return (0); 
}                                                

?SysTick_Config()需要傳進去一個形參,這個形參是要被寫入重裝載寄存器LOAD里面。

2.SysTick定時是時間計算?

t = reload * (1/clk)
clk = 72M時   t = (72)*(1/72M) = 1us
clk = 72M時   t = (72000)*(1/72M) = 1ms

3.?編寫延時函數(shù)

首先調(diào)用?SysTick_Config()函數(shù),傳入?yún)?shù)72就是1us,72000就是1ms。

SysTick_Config(72);

然后使用一個for循環(huán)計數(shù),執(zhí)行一次for循環(huán)就代表1us,for循環(huán)里面再用一個while循環(huán),通過CTRL是否置1來?判斷是都計時1us。

for(i = 0;i < us; i++)
	{
		while( ! ((SysTick->CTRL) & (1 << 16)) );
	}

延時完成后需要關(guān)閉定時器

SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;

最后,在main函數(shù)中調(diào)用這個延時函數(shù)并傳遞 一個形參即可。文章來源地址http://www.zghlxwxcb.cn/news/detail-832247.html

到了這里,關(guān)于STM32—系統(tǒng)定時器的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

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

    【STM32】STM32學(xué)習(xí)筆記-定時器定時中斷 定時器外部時鐘(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-定時器定時中斷.rar 10-定時器外部時鐘.rar 參考: 【STM32】江科大STM32學(xué)習(xí)筆記匯總

    2024年02月03日
    瀏覽(97)
  • 【嵌入式】HC32F定時器PWM捕獲+APC芯片實現(xiàn)模擬AD采樣

    【嵌入式】HC32F定時器PWM捕獲+APC芯片實現(xiàn)模擬AD采樣

    目錄 一 項目背景 二 原理說明 三 設(shè)計實現(xiàn)——定時器初始化 四 設(shè)計實現(xiàn)——PWM捕獲 五 梳理總結(jié) ? ? ? ? 目前使用了TI的ADC采樣芯片 ADS1018實現(xiàn)模擬量4-20mA/0-20mA的采樣 ,原理是 將外部輸入的模擬量信號4-20mA,經(jīng)由并聯(lián)的兩個100Ω電阻,轉(zhuǎn)換為0.2-1V的電壓信號傳遞到模數(shù)轉(zhuǎn)

    2023年04月24日
    瀏覽(24)
  • STM32系統(tǒng)滴答定時器SysTick實現(xiàn)精確ms和us延時

    時間記錄:2023/12/11 一、時間的計算 STM32F103C8T6單片機為例,系統(tǒng)時鐘為72MHz,則一個時鐘周期為(1/72M)秒,即1/72us 二、寄存器介紹 (1)CTRL控制及狀態(tài)寄存器 位段 名稱 描述 16 COUNTFLAG 當(dāng)計數(shù)到0時,該位置為1,當(dāng)讀取該位時,自動清零 2 CLKSOURCE 值為0時選擇外部時鐘源,值為

    2024年01月24日
    瀏覽(44)
  • 【STM32筆記】STM32的定時器開發(fā)基礎(chǔ)(二)(基于STM32CubeMX實現(xiàn)定時器中斷)

    【STM32筆記】STM32的定時器開發(fā)基礎(chǔ)(二)(基于STM32CubeMX實現(xiàn)定時器中斷)

    ? 傳統(tǒng)STM32外部中斷 的設(shè)計步驟: ?(1)將GPIO初始化為輸入端口。 ?(2)配置相關(guān)I/O引腳與中斷線的映射關(guān)系。 ?(3)設(shè)置該I/O引腳對印的中斷觸發(fā)條件。 ?(4)配置NVIC,并使能中斷。 ?(5)編寫中斷服務(wù)函數(shù)。 ? 基于STM32CubeMX的外部中斷 設(shè)計步驟 ?(1)在STM3

    2024年02月20日
    瀏覽(98)
  • HAL STM32基于系統(tǒng)滴答定時器(SysTick)實現(xiàn)多任務(wù)時間片輪詢

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

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

    2024年02月21日
    瀏覽(20)
  • STM32定時器-定時器中斷功能詳解

    STM32定時器-定時器中斷功能詳解

    STM32的眾多定時器中我們使用最多的是高級定時器和通用定時器,而高級定時器一般也是用作通用定時器的功能,下面我們就以通用定時器為例進行講解,其功能和特點包括: 通用與基本定時器(2~7)位于低速的APB1總線上 高級定時器(1、8)位于高速的APB2總線上 自動裝載計

    2024年02月08日
    瀏覽(108)
  • STM32——定時器——定時中斷

    STM32——定時器——定時中斷

    提示:文章寫完后,目錄可以自動生成,如何生成可參考右邊的幫助文檔 本節(jié)先只講解定時器的定時中斷,內(nèi)外中斷源選擇。 TIM(Timer)定時器 定時器可以 對輸入的時鐘進行計數(shù) ,并在計數(shù)值達到設(shè)定值時觸發(fā)中斷。 16位計數(shù)器、預(yù)分頻器、自動重裝寄存器的時基單元 ,

    2024年04月10日
    瀏覽(20)
  • stm32 定時器部分(定時中斷)

    一.定時中斷(概念部分) 定時中斷主要包含兩種中斷一種是更新中斷還有一種是輸入捕獲中斷 更新中斷 :更新中斷通常用于定時器的基本定時功能。當(dāng)定時器計數(shù)器溢出并重新從零開始計數(shù)時,會觸發(fā)更新中斷。你可以配置定時器的計數(shù)周期和預(yù)分頻器來控制定時器的計時

    2024年03月15日
    瀏覽(24)
  • STM32定時器

    STM32定時器

    目錄 一 定時器的基本介紹 二 定時器的原理框圖 1、定時器時鐘 2 時基單元 3 捕獲輸入 4 PWM輸出。 三 定時器的應(yīng)用 1 定時器的基礎(chǔ)定時計數(shù)功能 2 PWM比較輸出 3 外部脈沖計數(shù)? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? a、外部觸發(fā)輸入(ETR--外部時鐘模式2)? ? ? ? ? ? ? ? ? ?

    2024年02月16日
    瀏覽(15)
  • stm32——定時器

    stm32——定時器

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

    2024年02月06日
    瀏覽(15)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包