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

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

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

STM32 SysTick中斷使用方法

冬至子 ? 來源:紛紜雜談 ? 作者:CY_CHEN ? 2023-07-22 10:18 ? 次閱讀

SysTick中斷屬于核內(nèi)外設(shè)中斷器,中斷號為-1。想要使用SysTick中斷,只需在SysTick查詢定時上進(jìn)行稍微的修改。需要添加開啟中斷,直接用中斷函數(shù)對計數(shù)標(biāo)志位進(jìn)行清零,不再使用查詢方式判斷計數(shù)是否結(jié)束去清零。中斷函數(shù)接口SysTick_Handler在匯編文件中已經(jīng)給出定義,直接到文件中查找即可。

圖片

圖片

本來NVIC提供了中斷使能的函數(shù),但是要求中斷號要大于0(Value cannot be negative.),所以就不能調(diào)用NVIC中斷使能函數(shù)了,直接在操作寄存器開啟中斷就可以了。

修改如下:

#include "delay.h"
#include "led.h"


void Systick_Delayus(u32 us)
{
  SysTick- >CTRL =    0;                    //選擇時鐘源,8分頻 
  SysTick- >CTRL  |=  1< 1;                      //開中斷
  SysTick- >LOAD  =  21*us - 1;                  //賦值裝載值
  SysTick- >VAL  =    0;
  SysTick- >CTRL  |=  1< 0;                      //使能計數(shù)器
}


void Systick_Delayms(u16 ms)
{
  Systick_Delayus(ms * 1000);
}


void SysTick_Handler()
{
  SysTick- >CTRL  &=~  (1< 16);    //清計數(shù)標(biāo)志位
  LED_Toggle(DS0);              //LED燈閃爍
}

中斷函數(shù)定義好后,直接初始化中斷時間,主函數(shù)中不需要對中斷進(jìn)行其他處理,這樣就能實現(xiàn)SysTick中斷讓LED燈閃爍了。

#include "stm32f4xx.h"
#include "led.h"
#include "delay.h"


int main()
{
  LED_Init();              //初始化LED燈
  Systick_Delayms(500);

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

    關(guān)注

    22

    文章

    1595

    瀏覽量

    109372
  • 寄存器
    +關(guān)注

    關(guān)注

    31

    文章

    5423

    瀏覽量

    123440
  • NVIC
    +關(guān)注

    關(guān)注

    0

    文章

    36

    瀏覽量

    11953
  • 串口中斷
    +關(guān)注

    關(guān)注

    0

    文章

    67

    瀏覽量

    14253
  • Systick
    +關(guān)注

    關(guān)注

    0

    文章

    63

    瀏覽量

    13482
收藏 人收藏

    評論

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

    STM32 SYSTICK定時器常見問題

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

    STM32CubeMx外部中斷基本使用方法

    第一步:現(xiàn)在STM32CubeMx 中配置所需要IO口外部中斷模式。
    發(fā)表于 05-31 15:32 ?4949次閱讀
    <b class='flag-5'>STM32</b>CubeMx外部<b class='flag-5'>中斷</b>基本<b class='flag-5'>使用方法</b>

    CKS32F4xx系列MCU SysTick定時器的原理及使用方法

    本課將為大家講解CKS32F4xx系列產(chǎn)品的SysTick定時器原理及使用方法。SysTick定時器也叫SysTick滴答定時器,屬于Cortex-M4內(nèi)核外設(shè)。
    的頭像 發(fā)表于 12-18 09:21 ?1836次閱讀
    CKS32F4xx系列MCU <b class='flag-5'>SysTick</b>定時器的原理及<b class='flag-5'>使用方法</b>

    STM32SysTick定時中斷分析

    SysTick_Config()函數(shù),系統(tǒng)就為我們做了大量的事情。系統(tǒng)完成的事情如下所示: 1.該函數(shù)的參數(shù)就是預(yù)裝值 2.中斷設(shè)置成最低級別,并將計數(shù)寄存器清零。 3.配置SysTick的時鐘為HCLK
    發(fā)表于 11-14 18:25

    中斷的作用及使用方法

    1.中斷是什么2.中斷的作用3.中斷使用方法
    發(fā)表于 08-13 07:13

    STM32基本定時器中斷使用方法

    文章目錄摘要配置工程配置定時器參數(shù)使能定時器配置定時器參數(shù)開啟定時器中斷生成工程編寫用戶程序編寫中斷回調(diào)函數(shù)啟動定時器編譯下載程序摘要??本章講解STM32基本定時器中斷
    發(fā)表于 12-13 07:10

    STM32單片機(jī)Systick函數(shù)的使用方法

    在CMSIS中提供的函數(shù)是SysTick_Config(uint32_t ticks); 該函數(shù)設(shè)置了自動重載入計數(shù)器(LOAD)的值,SysTick IRQ的優(yōu)先級,復(fù)位了計數(shù)器(VAL)的值,開始計數(shù)并打開SysTick I
    發(fā)表于 12-28 15:07 ?6149次閱讀

    使用STM32單片機(jī)進(jìn)行外部中斷實驗的詳細(xì)資料說明

    實驗?zāi)康? 理解中斷的基本概念。 掌握STM32中斷源及中斷優(yōu)先級。 掌握STM32外部中斷
    發(fā)表于 04-29 18:24 ?11次下載
    使用<b class='flag-5'>STM32</b>單片機(jī)進(jìn)行外部<b class='flag-5'>中斷</b>實驗的詳細(xì)資料說明

    STM32關(guān)全局中斷方法 STM32中斷類型

    。 STM32中斷類型: 系統(tǒng)異常:內(nèi)核水平 10個 外部中斷:外設(shè)水平 60個 STM32關(guān)全局中斷有多種
    的頭像 發(fā)表于 07-22 10:52 ?2.9w次閱讀

    STM32—關(guān)于SYSTICK系統(tǒng)時鐘的詳解及學(xué)習(xí)筆記

    /*配置SYSTICK很簡單,只需在SySTick_Config中寫入一個不大于2^24次方的數(shù),就可以產(chǎn)生systick中斷1.無需對NVIC進(jìn)行配置,在
    發(fā)表于 11-30 15:51 ?15次下載
    <b class='flag-5'>STM32</b>—關(guān)于<b class='flag-5'>SYSTICK</b>系統(tǒng)時鐘的詳解及學(xué)習(xí)筆記

    STM32 SysTick_Handler/SysTickHandler 無法進(jìn)入中斷的問題

    STM32 SysTick_Handler/SysTickHandler 無法進(jìn)入中斷的問題首先,在3.5版本的庫函數(shù)中,SysTickHandler改為了SysTick_Handle
    發(fā)表于 12-02 18:36 ?17次下載
    <b class='flag-5'>STM32</b> <b class='flag-5'>SysTick</b>_Handler/SysTickHandler 無法進(jìn)入<b class='flag-5'>中斷</b>的問題

    Systick_Handler B.卡死處理方法

    文章目錄Systick_Handler B.卡死處理方法1.中斷開啟未處理!2.引入C/C++代碼而未作配置處理總結(jié)注:主要總結(jié)國產(chǎn)GD32和STM32單片機(jī)卡死在*.s啟動文件
    發(fā)表于 12-03 15:21 ?21次下載
    <b class='flag-5'>Systick</b>_Handler   B.卡死處理<b class='flag-5'>方法</b>

    stm32 SysTick/EXTI/USART中斷過程

    本文中例子所使用的是stm32f103+標(biāo)準(zhǔn)庫函數(shù), 聲明.SysTick中斷過程SysTick是配置好重裝載計數(shù)器(STK_LOAD)后, 并使能了
    發(fā)表于 12-23 19:55 ?3次下載
    <b class='flag-5'>stm32</b> <b class='flag-5'>SysTick</b>/EXTI/USART<b class='flag-5'>中斷</b>過程

    STM32學(xué)習(xí)---中斷EXTI(按鍵中斷)

    //中斷實驗--利用按鍵進(jìn)行的中斷;//首先分析STM32中斷機(jī)制:/*?? ?因為STM32中斷
    發(fā)表于 01-14 15:31 ?14次下載
    <b class='flag-5'>STM32</b>學(xué)習(xí)---<b class='flag-5'>中斷</b>EXTI(按鍵<b class='flag-5'>中斷</b>)

    STM32SysTick時鐘源來自哪里?

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

    電子發(fā)燒友

    中國電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會員交流學(xué)習(xí)
    • 獲取您個性化的科技前沿技術(shù)信息
    • 參加活動獲取豐厚的禮品