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

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

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

STM32 SysTick中斷使用方法

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

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

圖片

圖片

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

修改如下:

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


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


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


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

中斷函數(shù)定義好后,直接初始化中斷時(shí)間,主函數(shù)中不需要對(duì)中斷進(jìn)行其他處理,這樣就能實(shí)現(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)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • led燈
    +關(guān)注

    關(guān)注

    22

    文章

    1592

    瀏覽量

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

    關(guān)注

    31

    文章

    5363

    瀏覽量

    121002
  • NVIC
    +關(guān)注

    關(guān)注

    0

    文章

    35

    瀏覽量

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

    關(guān)注

    0

    文章

    67

    瀏覽量

    13978
  • Systick
    +關(guān)注

    關(guān)注

    0

    文章

    62

    瀏覽量

    13131
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32 SYSTICK定時(shí)器常見問題

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

    STM32CubeMx外部中斷基本使用方法

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

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

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

    中斷的作用及使用方法

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

    STM32基本定時(shí)器中斷使用方法

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

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

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

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

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

    STM32中的SysTick時(shí)鐘源來自哪里?

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

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

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

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

    /*配置SYSTICK很簡單,只需在SySTick_Config中寫入一個(gè)不大于2^24次方的數(shù),就可以產(chǎn)生systick中斷1.無需對(duì)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)時(shí)鐘的詳解及學(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啟動(dòng)文件
    發(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是配置好重裝載計(jì)數(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(按鍵中斷)

    //中斷實(shí)驗(yàn)--利用按鍵進(jìn)行的中斷;//首先分析STM32中斷機(jī)制:/*?? ?因?yàn)?b class='flag-5'>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時(shí)鐘源來自哪里?

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