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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

STM32 SysTick中斷使用方法

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

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

圖片

圖片

本來NVIC提供了中斷使能的函數(shù),但是要求中斷號要大于0(Value cannot be negative.),所以就不能調用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ù)標志位
  LED_Toggle(DS0);              //LED燈閃爍
}

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

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


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

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

    關注

    22

    文章

    1592

    瀏覽量

    107763
  • 寄存器
    +關注

    關注

    31

    文章

    5300

    瀏覽量

    119858
  • NVIC
    +關注

    關注

    0

    文章

    35

    瀏覽量

    11667
  • 串口中斷
    +關注

    關注

    0

    文章

    64

    瀏覽量

    13848
  • Systick
    +關注

    關注

    0

    文章

    62

    瀏覽量

    13031
收藏 人收藏

    評論

    相關推薦

    STM32 SYSTICK定時器常見問題

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

    STM32CubeMx外部中斷基本使用方法

    第一步:現(xiàn)在STM32CubeMx 中配置所需要IO口外部中斷模式。
    發(fā)表于 05-31 15:32 ?3982次閱讀
    <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內核外設。
    的頭像 發(fā)表于 12-18 09:21 ?1212次閱讀
    CKS32F4xx系列MCU <b class='flag-5'>SysTick</b>定時器的原理及<b class='flag-5'>使用方法</b>

    中斷的作用及使用方法

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

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

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

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

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

    使用STM32單片機進行外部中斷實驗的詳細資料說明

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

    STM32中的SysTick時鐘源來自哪里?

    STM32SysTick時鐘源來自哪里?
    的頭像 發(fā)表于 03-03 14:32 ?7780次閱讀

    STM32關全局中斷方法 STM32中斷類型

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

    STM32—關于SYSTICK系統(tǒng)時鐘的詳解及學習筆記

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

    STM32 SysTick_Handler/SysTickHandler 無法進入中斷的問題

    STM32 SysTick_Handler/SysTickHandler 無法進入中斷的問題首先,在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 無法進入<b class='flag-5'>中斷</b>的問題

    Systick_Handler B.卡死處理方法

    文章目錄Systick_Handler B.卡死處理方法1.中斷開啟未處理!2.引入C/C++代碼而未作配置處理總結注:主要總結國產(chǎn)GD32和STM32單片機卡死在*.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+標準庫函數(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學習---中斷EXTI(按鍵中斷)

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

    STM32SysTick時鐘源來自哪里?

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