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

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

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

STM32F1_ SysTick系統(tǒng)滴答

黃工的嵌入式技術(shù)圈 ? 來(lái)源:黃工的嵌入式技術(shù)圈 ? 2020-04-08 11:00 ? 次閱讀

前言

今天講解“STM32F103 SysTick系統(tǒng)滴答”,“SysTick系統(tǒng)滴答”是屬于Cortex-M3內(nèi)核的一部分,主要是為運(yùn)行的操作系統(tǒng)提供滴答時(shí)鐘,如常見的操作系統(tǒng):uCOS、RTOS等。不管M3芯片屬于哪一家公司,它都標(biāo)配有SysTick這一部分。因此,它屬于芯片內(nèi)核的一部分,主要是為了方便操作系統(tǒng)的移植。

其實(shí),SysTick能實(shí)現(xiàn)的功能,都可以由TIM來(lái)實(shí)現(xiàn)。SysTick無(wú)非就是定時(shí)中斷的功能,它完全可以由TIM定時(shí)器來(lái)完成。之所以SysTick獨(dú)立出來(lái)就是因?yàn)樗鼘儆趦?nèi)核一部分,方便用戶移植,而且簡(jiǎn)單方便。學(xué)過(guò)uCOS的人都知道,以前在51,或者430上面是由定時(shí)器完成的時(shí)鐘滴答,到后面ARM公司就用到了一個(gè)好的辦法,就是在內(nèi)核中標(biāo)配一個(gè)SysTick,這樣下來(lái)移植系統(tǒng)不用那么麻煩了。

SysTick除了在操作系統(tǒng)中起到作用,其實(shí)在裸機(jī)程序中也起到很大作用,比如:定期處理一段程序、超時(shí)定時(shí)、串口接收超時(shí)等,今天就以“定期處理一段程序”為例來(lái)說(shuō)一下。

說(shuō)到操作系統(tǒng),后期我也會(huì)花一定時(shí)間講解一下uCOS操作系統(tǒng),感興趣的朋友可以關(guān)注一下。

本文特點(diǎn):1.提供講解的軟件工程; 2.重點(diǎn)代碼截圖,配講解。

本著免費(fèi)分享的原則,將講解的工程源代碼分享給大家,還望看到的朋友關(guān)注一下微信公眾號(hào),并將文章分享給你的朋友。

下載

提供下載的“軟件工程”都是在硬件板子上進(jìn)行多次測(cè)試、并保證沒問(wèn)題才上傳至360云盤。

今天的軟件工程下載地址(360云盤):

https://yunpan.cn/cSVIp4UeSpA9B訪問(wèn)密碼 f486

STM32F10x的資料可以在我360云盤下載:

https://yunpan.cn/crBUdUGdYKam2訪問(wèn)密碼 ca90

內(nèi)容講解

工程概要說(shuō)明: 系統(tǒng)上電初始化完成,配置SysTick,1秒滴答(中斷)10次,執(zhí)行的一段程序就是“變化LED”,運(yùn)行該程序就可以看到定義的LED不在1秒鐘閃爍10次。

關(guān)于“STM32F103 SysTick系統(tǒng)滴答”我把重要的幾點(diǎn)在下面分別講述:

一、配置并初始化SysTick


該函數(shù)位于main.c文件下面;

上圖中紅色箭頭處10代表的意思就是:一秒鐘滴答(中斷)10次,可自行修改這個(gè)值。用于系統(tǒng),我們一般在100 --- 1000之間,也就是要滴答100 --- 1000次。

獲取系統(tǒng)時(shí)鐘,正常情況下,我們這里的RCC_ClocksStructure.SYSCLK_Frequency應(yīng)該和SystemCoreClock一樣,最好像上面程序中直接獲取系統(tǒng)時(shí)鐘,原因很簡(jiǎn)單,有可能SystemCoreClock與實(shí)際的不一樣。

二、SysTick_Config函數(shù)詳情


該函數(shù)位于core_cm3.c文件下面;

這個(gè)函數(shù)是芯片標(biāo)志的函數(shù)接口,我大概講解一下吧,設(shè)置重載值,設(shè)置中斷優(yōu)先級(jí),配置并初始化SysTick。

三、SysTick中斷


該函數(shù)位于stm32f10x_it.c文件下面;

處理的程序就變化LED,也就是注釋的語(yǔ)句。

四、SysTick寄存器

有4個(gè)寄存器控制SysTick定時(shí)器,在STM32參考手冊(cè)中沒有提到,位于“Cortex-M3權(quán)威指南Cn”中,在我提供的“STM32F10x的資料”中下載。


說(shuō)明

今天提供的軟件工程基于STM32F103大容量芯片,其實(shí)只要適當(dāng)修改工程的部分配置,STM32F1的芯片都適用。

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

    關(guān)注

    7

    文章

    175

    瀏覽量

    78225
  • Systick
    +關(guān)注

    關(guān)注

    0

    文章

    62

    瀏覽量

    13020
  • STM32F10
    +關(guān)注

    關(guān)注

    0

    文章

    45

    瀏覽量

    15590
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    求助,關(guān)于STM32F030K6低功耗停止模式下SysTick的問(wèn)題求解

    芯片型號(hào):STM32F030K6 開發(fā)環(huán)境:標(biāo)準(zhǔn)庫(kù) 問(wèn)題:SYSCLK配置的是HSI(PLL選擇HSI也試過(guò))。在調(diào)試停止模式時(shí),發(fā)現(xiàn)只要初始化過(guò)程中調(diào)用SysTick_Config()函數(shù)配置滴答
    發(fā)表于 07-23 08:11

    自制一款兼容STM32F1/F4芯片的飛控板

    自己制作的一款兼容STM32F1/F4芯片的飛控板。
    發(fā)表于 07-04 14:07 ?0次下載

    STM8S103F系列支持滴答時(shí)鐘嗎?

    STM8S103F系列支持滴答時(shí)鐘嗎?
    發(fā)表于 05-10 07:13

    適合單片機(jī)裸機(jī)的開源軟件框架:Zorb

    采用STM32F429開發(fā)板作為硬件運(yùn)行環(huán)境,硬件資源用到串口1systick,其中串口1提供調(diào)試打印功能,systick提供
    發(fā)表于 04-12 09:42 ?698次閱讀
    適合單片機(jī)裸機(jī)的開源軟件框架:Zorb

    STM32F4無(wú)法通過(guò)系統(tǒng)存儲(chǔ)器地址0x1fff0000進(jìn)入BootLoader引導(dǎo)代碼怎么解決?

    FFF0000; /* STM32F4的系統(tǒng)BootLoader地址 */ /* 關(guān)閉全局中斷 */ DISABLE_INT(); /* 關(guān)閉滴答定時(shí)器,復(fù)位到默認(rèn)值 */ SysTic
    發(fā)表于 03-27 06:12

    STM32L431RCT6從用戶代碼區(qū)跳轉(zhuǎn)使用內(nèi)置system memory bootloader無(wú)效怎么解決?

    STM32L431RCT6 從用戶代碼區(qū)跳轉(zhuǎn)使用內(nèi)置system memory bootloader 無(wú)效。 1. 跳轉(zhuǎn)代碼如下,這個(gè)代碼 可以在STM32F407VET6上正常跳轉(zhuǎn) 內(nèi)置
    發(fā)表于 03-26 07:54

    個(gè)人對(duì)STM32 SysTick的總結(jié)(寄存器操作)

    一、概述:SysTick是一個(gè)簡(jiǎn)單的遞減24位計(jì)數(shù)器。如果你不需要再應(yīng)用程序中嵌入操作系統(tǒng)SysTick可以作為簡(jiǎn)單的延時(shí)和產(chǎn)生周期性的中斷。狀態(tài)控制寄存器的第0位可以使能計(jì)數(shù)器,當(dāng)前值寄存器隨著
    的頭像 發(fā)表于 01-06 08:00 ?1584次閱讀
    個(gè)人對(duì)<b class='flag-5'>STM32</b> <b class='flag-5'>SysTick</b>的總結(jié)(寄存器操作)

    適合單片機(jī)裸機(jī)的開源軟件框架:Zorb

    采用STM32F429開發(fā)板作為硬件運(yùn)行環(huán)境,硬件資源用到串口1systick,其中串口1提供調(diào)試打印功能,systick提供
    發(fā)表于 12-27 13:49 ?931次閱讀
    適合單片機(jī)裸機(jī)的開源軟件框架:Zorb

    stm32delay函數(shù)怎么寫

    STM32的延時(shí)函數(shù)可以使用SysTick定時(shí)器來(lái)實(shí)現(xiàn)。SysTick定時(shí)器是一個(gè)24位的計(jì)數(shù)器,它可以在每個(gè)時(shí)鐘周期自動(dòng)減少計(jì)數(shù)值,直到計(jì)數(shù)值為0時(shí)觸發(fā)中斷。我們可以利用SysTick
    的頭像 發(fā)表于 12-21 17:53 ?2097次閱讀

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

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

    FreeRTOS中Systick的問(wèn)題

    在Cortex-M內(nèi)核中,系統(tǒng)節(jié)拍由Systick時(shí)鐘提供,當(dāng)配置好系統(tǒng)滴答時(shí)鐘后,每次時(shí)鐘中斷就會(huì)觸發(fā)中斷處理數(shù)xPortSysTickHandler
    的頭像 發(fā)表于 12-15 08:00 ?975次閱讀
    FreeRTOS中<b class='flag-5'>Systick</b>的問(wèn)題

    systick_handler無(wú)法進(jìn)入怎么解決

    在嵌入式系統(tǒng)中,SysTick是一個(gè)用于定時(shí)器和延時(shí)的模塊,通常用于處理實(shí)時(shí)任務(wù)、中斷和延時(shí)等。然而,在某些情況下,SysTick中斷處理函數(shù)(systick_handler)可能無(wú)法
    的頭像 發(fā)表于 12-01 15:36 ?3887次閱讀

    滴答定時(shí)器在單片機(jī)中的作用?

    使用lpc54110的時(shí)候,將滴答定時(shí)器中斷注釋掉之后單片機(jī)就直接不工作了(就是這個(gè)函數(shù)SysTick_Handler)
    發(fā)表于 11-09 08:30

    實(shí)時(shí)操作系統(tǒng)滴答Tick設(shè)置多少才合適?

    實(shí)時(shí)操作系統(tǒng)滴答Tick設(shè)置多少才合適? 介紹實(shí)時(shí)操作系統(tǒng)中Tick的設(shè)置。 在實(shí)時(shí)操作系統(tǒng)中,Tick是指操作系統(tǒng)的時(shí)間基準(zhǔn),它是操作
    的頭像 發(fā)表于 10-29 16:33 ?789次閱讀

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

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