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

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

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

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

STM32 SysTick配置函數(shù)

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

之前使用SysTick滴答定時(shí)器都是通過(guò)查找內(nèi)核編程手冊(cè)配置寄存器讓SysTick滴答定時(shí)器工作的。其實(shí)在內(nèi)核相關(guān)的頭文件core_cm4.h中已經(jīng)有SysTick滴答定時(shí)器的相關(guān)配置了。

圖片

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

圖片

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

觀(guān)察函數(shù)__STATIC_INLINE uint32_t SysTick_Config(uint32_t ticks),其中的寄存器和我們?cè)赟ystick查詢(xún)定時(shí)中用到的寄存器其實(shí)是一樣的。

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


  SysTick- >LOAD  = (uint32_t)(ticks - 1UL);                         /* set reload register */
  //設(shè)中斷端優(yōu)先級(jí)
  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 */
}

這種方式?jīng)]有分頻,時(shí)鐘速度為168Mhz,每秒可計(jì)數(shù)168000000次,每毫秒可計(jì)數(shù)168000次,每微秒計(jì)數(shù)168次。裝載值為24位,最大為16777215,可以算得最大延時(shí)時(shí)間為100ms。

這次的程序不需要上次寫(xiě)的delay文件了,只要在主文件加入SysTick配置函數(shù)的頭文件core_cm4.h,根據(jù)想要定時(shí)的時(shí)間,計(jì)算相應(yīng)的數(shù)值,初始化SysTick配置函數(shù)。再調(diào)用中斷接口封裝中斷函數(shù),就可以實(shí)現(xiàn)SysTick中斷了。

如果中斷函數(shù)像之前那樣可能會(huì)看不到現(xiàn)象,因?yàn)槎〞r(shí)時(shí)間過(guò)短,人眼可能識(shí)別不出led燈在閃爍,這里可以添加個(gè)計(jì)數(shù),相當(dāng)于定時(shí)更長(zhǎng)時(shí)間才執(zhí)行想要的程序。

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


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

  while(1)
  {
  }
}


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

編譯工程項(xiàng)目并燒入開(kāi)發(fā)板,LED燈閃爍,SysTick配置函數(shù)調(diào)用成功。

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

    關(guān)注

    22

    文章

    1592

    瀏覽量

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

    關(guān)注

    31

    文章

    5359

    瀏覽量

    120779
  • 定時(shí)器
    +關(guān)注

    關(guān)注

    23

    文章

    3253

    瀏覽量

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

    關(guān)注

    0

    文章

    67

    瀏覽量

    13959
  • STM32F4
    +關(guān)注

    關(guān)注

    3

    文章

    194

    瀏覽量

    28104
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    STM32 SYSTICK定時(shí)器常見(jiàn)問(wèn)題

    我們知道,STM32庫(kù)函數(shù)里通常使用來(lái)自?xún)?nèi)核的系統(tǒng)定時(shí)器SYSTICK作為時(shí)基,實(shí)現(xiàn)計(jì)數(shù)延時(shí)。一般來(lái)講,ST公司提供的庫(kù)函數(shù)里將SYSTICK
    發(fā)表于 09-13 16:20 ?3079次閱讀

    配置SYSTICK

    /*配置SYSTICK很簡(jiǎn)單,只需在SySTick_Config中寫(xiě)入一個(gè)不大于2^24次方的數(shù),就可以產(chǎn)生systick中斷1.無(wú)需對(duì)NVIC進(jìn)行
    發(fā)表于 08-17 06:22

    STM32--SYSTICK超簡(jiǎn)易定時(shí)器

    當(dāng)然CORTEX-M3獨(dú)有的定時(shí)功能可是超級(jí)簡(jiǎn)單的 那就是SySTick,所謂的系統(tǒng)定時(shí)器。配置方式簡(jiǎn)單,簡(jiǎn)單的不能再簡(jiǎn)單,因?yàn)?b class='flag-5'>STM32 的庫(kù)函數(shù)已經(jīng)幫我們搞好了,只需要調(diào)用一個(gè)
    發(fā)表于 03-16 15:47 ?19次下載

    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ù)器(V
    發(fā)表于 12-28 15:07 ?5976次閱讀

    什么是SysTick定時(shí)器?實(shí)現(xiàn)STM32時(shí)鐘系統(tǒng)的詳細(xì)資料說(shuō)明

    什么是SysTick定時(shí)器?實(shí)現(xiàn)STM32時(shí)鐘系統(tǒng)的詳細(xì)資料說(shuō)明主要內(nèi)容包括了:Systick原理和配置方法,ALIENTEK 延時(shí)函數(shù)de
    發(fā)表于 01-02 08:00 ?3次下載
    什么是<b class='flag-5'>SysTick</b>定時(shí)器?實(shí)現(xiàn)<b class='flag-5'>STM32</b>時(shí)鐘系統(tǒng)的詳細(xì)資料說(shuō)明

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

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

    【野火指南者】STM32F103延時(shí)函數(shù)及其系統(tǒng)定時(shí)器—SysTick

    學(xué)習(xí)目的:1、學(xué)習(xí)STM32的系統(tǒng)定時(shí)器及其相關(guān)的寄存器2、使用STM32的系統(tǒng)定時(shí)器來(lái)配置延時(shí)函數(shù)內(nèi)容介紹:一、Systick簡(jiǎn)介二、
    發(fā)表于 11-24 20:06 ?7次下載
    【野火指南者】<b class='flag-5'>STM32</b>F103延時(shí)<b class='flag-5'>函數(shù)</b>及其系統(tǒng)定時(shí)器—<b class='flag-5'>SysTick</b>

    STM32學(xué)習(xí)筆記之SysTick

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

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

    /*配置SYSTICK很簡(jiǎn)單,只需在SySTick_Config中寫(xiě)入一個(gè)不大于2^24次方的數(shù),就可以產(chǎn)生systick中斷1.無(wú)需對(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í)筆記

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

    Systick定時(shí)器基礎(chǔ)知識(shí)講解Systick相關(guān)寄存器庫(kù)函數(shù)講解delay延時(shí)函數(shù)講解(Systick應(yīng)用)(借鑒正點(diǎn)原子網(wǎng)課)(一)
    發(fā)表于 12-01 15:21 ?15次下載
    <b class='flag-5'>STM32</b>F4: <b class='flag-5'>Systick</b>滴答定時(shí)器-延時(shí)<b class='flag-5'>函數(shù)</b>講解(五)

    Systick定時(shí)器幾個(gè)簡(jiǎn)單的函數(shù)簡(jiǎn)介

    目錄Systick定時(shí)器Systick定時(shí)器是什么?SysTick的四個(gè)寄存器寄存器對(duì)應(yīng)的位Systick時(shí)鐘源選擇函數(shù)
    發(fā)表于 12-04 17:06 ?1次下載
    <b class='flag-5'>Systick</b>定時(shí)器幾個(gè)簡(jiǎn)單的<b class='flag-5'>函數(shù)</b>簡(jiǎn)介

    stm32 SysTick/EXTI/USART中斷過(guò)程

    本文中例子所使用的是stm32f103+標(biāo)準(zhǔn)庫(kù)函數(shù), 聲明.SysTick中斷過(guò)程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中斷過(guò)程

    STM32關(guān)于systick計(jì)時(shí)器時(shí)間不對(duì)的一點(diǎn)問(wèn)題

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

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

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

    STM32SysTick時(shí)鐘源來(lái)自哪里?

    STM32SysTick時(shí)鐘源來(lái)自哪里?
    的頭像 發(fā)表于 10-26 15:58 ?2069次閱讀
    <b class='flag-5'>STM32</b>的<b class='flag-5'>SysTick</b>時(shí)鐘源來(lái)自哪里?
    主站蜘蛛池模板: 久久大香线蕉综合爱| 日日爱视频| 求av网站| 女bbbbxxxx视频| av大片| 97福利影院| 天天爽夜夜爽精品免费| 视频福利网| 成人夜夜| 国产香蕉在线精彩视频| 91一级片| 视频精品一区二区三区| 中文字幕一精品亚洲无线一区| 伊人98| 日本特黄特色特爽大片老鸭| 毛片美女| 97福利| 国产18到20岁美女毛片| 久久精品国产福利国产琪琪 | 五月婷婷基地| 欧美一级黄色片视频| 国模吧2021新入口| 午夜影剧院| 国产干美女| 女a男o肉文| 色香影院| 国产女人18毛片水真多18精品| 午夜影院观看| 波多野吉衣一区二区三区在线观看| 亚洲免费一| 亚洲小说区图片区另类春色| 永久免费精品视频| 欧美午夜视频在线观看| a级毛片免费观看网站| 国产资源视频在线观看| 欧美日本一区二区| 四虎成人免费网站在线| 性free3d| 激情玖玖| www.亚洲天堂.com| 人人艹在线视频|