在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

STM32 SysTick配置函數

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

之前使用SysTick滴答定時器都是通過查找內核編程手冊配置寄存器讓SysTick滴答定時器工作的。其實在內核相關的頭文件core_cm4.h中已經有SysTick滴答定時器的相關配置了。

圖片

條件__Vendor_SysTickConfig == 0成立,配置函數才能使用。

圖片

剛好在stm32f4xx.h中定義了__Vendor_SysTickConfig = 0,所以可以使用該配置函數。

觀察函數__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks),其中的寄存器和我們在Systick查詢定時中用到的寄存器其實是一樣的。

__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks)
{
  //SysTick_LOAD_RELOAD_Msk為24,如果裝載值超過24位,返回錯誤信息
  if ((ticks - 1UL) > SysTick_LOAD_RELOAD_Msk) { return (1UL); }    /* Reload value impossible */


  SysTick- >LOAD  = (uint32_t)(ticks - 1UL);                         /* set reload register */
  //設中斷端優先級
  NVIC_SetPriority (SysTick_IRQn, (1UL < < __NVIC_PRIO_BITS) - 1UL); /* set Priority for Systick Interrupt */
  SysTick- >VAL   = 0UL;                                             /* Load the SysTick Counter Value */
  SysTick- >CTRL  = SysTick_CTRL_CLKSOURCE_Msk |
                   SysTick_CTRL_TICKINT_Msk   |
                   SysTick_CTRL_ENABLE_Msk;                         /* Enable SysTick IRQ and SysTick Timer */
  return (0UL);                                                     /* Function successful */
}

這種方式沒有分頻,時鐘速度為168Mhz,每秒可計數168000000次,每毫秒可計數168000次,每微秒計數168次。裝載值為24位,最大為16777215,可以算得最大延時時間為100ms。

這次的程序不需要上次寫的delay文件了,只要在主文件加入SysTick配置函數的頭文件core_cm4.h,根據想要定時的時間,計算相應的數值,初始化SysTick配置函數。再調用中斷接口封裝中斷函數,就可以實現SysTick中斷了。

如果中斷函數像之前那樣可能會看不到現象,因為定時時間過短,人眼可能識別不出led燈在閃爍,這里可以添加個計數,相當于定時更長時間才執行想要的程序。

#include "stm32f4xx.h"
#include "led.h"
#include "core_cm4.h"


int main()
{
  LED_Init();              //初始化LED燈
  SysTick_Config(8400000);//延時50ms    168000000/8400000=20     1000/20=50

  while(1)
  {
  }
}


void SysTick_Handler()
{
  static u8 cnt = 0;
  SysTick- >CTRL  &=~  (1< 16);    //清計數標志位
  cnt++;
  if(cnt == 10)
  {
    LED_Toggle(DS0);              //LED燈閃爍
    cnt = 0; 
  }
}

編譯工程項目并燒入開發板,LED燈閃爍,SysTick配置函數調用成功。

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

    關注

    22

    文章

    1593

    瀏覽量

    109191
  • 寄存器
    +關注

    關注

    31

    文章

    5401

    瀏覽量

    122811
  • 定時器
    +關注

    關注

    23

    文章

    3272

    瀏覽量

    116757
  • 串口中斷
    +關注

    關注

    0

    文章

    67

    瀏覽量

    14191
  • STM32F4
    +關注

    關注

    3

    文章

    194

    瀏覽量

    28732
收藏 人收藏

    評論

    相關推薦

    STM32 SYSTICK定時器常見問題

    我們知道,STM32函數里通常使用來自內核的系統定時器SYSTICK作為時基,實現計數延時。一般來講,ST公司提供的庫函數里將SYSTICK
    發表于 09-13 16:20 ?3368次閱讀

    配置SYSTICK

    /*配置SYSTICK很簡單,只需在SySTick_Config中寫入一個不大于2^24次方的數,就可以產生systick中斷1.無需對NVIC進行
    發表于 08-17 06:22

    STM32--SYSTICK超簡易定時器

    當然CORTEX-M3獨有的定時功能可是超級簡單的 那就是SySTick,所謂的系統定時器。配置方式簡單,簡單的不能再簡單,因為STM32 的庫函數已經幫我們搞好了,只需要調用一個
    發表于 03-16 15:47 ?19次下載

    STM32單片機Systick函數的使用方法

    在CMSIS中提供的函數SysTick_Config(uint32_t ticks); 該函數設置了自動重載入計數器(LOAD)的值,SysTick IRQ的優先級,復位了計數器(V
    發表于 12-28 15:07 ?6093次閱讀

    什么是SysTick定時器?實現STM32時鐘系統的詳細資料說明

    什么是SysTick定時器?實現STM32時鐘系統的詳細資料說明主要內容包括了:Systick原理和配置方法,ALIENTEK 延時函數de
    發表于 01-02 08:00 ?3次下載
    什么是<b class='flag-5'>SysTick</b>定時器?實現<b class='flag-5'>STM32</b>時鐘系統的詳細資料說明

    【野火指南者】STM32F103延時函數及其系統定時器—SysTick

    學習目的:1、學習STM32的系統定時器及其相關的寄存器2、使用STM32的系統定時器來配置延時函數內容介紹:一、Systick簡介二、
    發表于 11-24 20:06 ?7次下載
    【野火指南者】<b class='flag-5'>STM32</b>F103延時<b class='flag-5'>函數</b>及其系統定時器—<b class='flag-5'>SysTick</b>

    STM32學習筆記之SysTick

    Systick大有不同,于是作此學習筆記。Systick的兩大作用:1、可以產生精確的延時2、可以提供給操作系統一個單獨的心跳(時鐘)節拍通常實現Delay(N)函數的方法為:    &n
    發表于 11-25 10:36 ?1次下載
    <b class='flag-5'>STM32</b>學習筆記之<b class='flag-5'>SysTick</b>

    STM32—關于SYSTICK系統時鐘的詳解及學習筆記

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

    STM32F4: Systick滴答定時器-延時函數講解(五)

    Systick定時器基礎知識講解Systick相關寄存器庫函數講解delay延時函數講解(Systick應用)(借鑒正點原子網課)(一)
    發表于 12-01 15:21 ?15次下載
    <b class='flag-5'>STM32</b>F4: <b class='flag-5'>Systick</b>滴答定時器-延時<b class='flag-5'>函數</b>講解(五)

    Systick定時器幾個簡單的函數簡介

    目錄Systick定時器Systick定時器是什么?SysTick的四個寄存器寄存器對應的位Systick時鐘源選擇函數
    發表于 12-04 17:06 ?1次下載
    <b class='flag-5'>Systick</b>定時器幾個簡單的<b class='flag-5'>函數</b>簡介

    stm32 SysTick/EXTI/USART中斷過程

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

    STM32學習心得九:Systick滴答定時器和延時函數解讀

    記錄一下,方便以后翻閱~主要內容:1) Systick定時器及相關寄存器;2) Systick相關函數及延遲函數代碼解讀。1. Sys
    發表于 01-13 10:15 ?6次下載
    <b class='flag-5'>STM32</b>學習心得九:<b class='flag-5'>Systick</b>滴答定時器和延時<b class='flag-5'>函數</b>解讀

    STM32關于systick計時器時間不對的一點問題

    STM32關于systick計時器時間不對的一點問題我是新手剛接觸STM32,我設定的時間總是實際時間的一半,檢查許久也不知道是哪里出了問題下面是延時函數和計時器的
    發表于 01-18 10:41 ?4次下載
    <b class='flag-5'>STM32</b>關于<b class='flag-5'>systick</b>計時器時間不對的一點問題

    STM32SysTick滴答定時器(delay延時函數講解)

    。比如UCOS中,分時復用,需要一個最小的時間戳,一般在STM32+UCOS系統中,都采用Systick做UCOS心跳時鐘。
    發表于 02-10 10:35 ?13次下載
    【<b class='flag-5'>STM32</b>】<b class='flag-5'>SysTick</b>滴答定時器(delay延時<b class='flag-5'>函數</b>講解)

    STM32SysTick時鐘源來自哪里?

    STM32SysTick時鐘源來自哪里?
    的頭像 發表于 10-26 15:58 ?2396次閱讀
    <b class='flag-5'>STM32</b>的<b class='flag-5'>SysTick</b>時鐘源來自哪里?
    主站蜘蛛池模板: 国产成人精品日本亚洲网站 | 日本bt| 成 人在线观看视频网站 | 色女孩网站 | 久久国产乱子伦精品免费一 | 国产精品美女自在线观看免费 | 国产拳头交一区二区 | 亚洲成人黄色 | 欧美午夜性刺激在线观看免费 | 国产一级特黄a大片免费 | 欧美骚| 色噜噜狠狠色综合久 | 高清国产亚洲va精品 | 天天射天天射天天干 | 欧美在线观看www | 欧美黄业 | 亚色图| 91在线激情在线观看 | 免费观看高清视频 | 李老汉和小花的性生生活 | 色老头一区二区三区在线观看 | 中文天堂在线最新版在线www | 欧美在线视频一区二区三区 | 亚洲人色大成年网站在线观看 | 亚洲欧美日韩国产一区二区三区精品 | 国产伦精品一区二区 | 国产精品久久在线 | 日韩午夜在线视频不卡片 | 手机看片福利盒子 | 日韩特级毛片免费观看视频 | 人操人操 | 色噜噜狠狠狠综合曰曰曰 | 情趣店上班h系列小说 | 人人搞人人 | 永久精品免费影院在线观看网站 | 亚洲狼色专区 | 天天射天天拍 | 深爱五月激情网 | 久久久久久噜噜噜久久久精品 | 国产精品久久久久久久免费大片 | 成人羞羞视频国产 |