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

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

3天內不再提示

STM32F1_ SysTick系統滴答

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 2020-04-08 11:00 ? 次閱讀

前言

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

其實,SysTick能實現的功能,都可以由TIM來實現。SysTick無非就是定時中斷的功能,它完全可以由TIM定時器來完成。之所以SysTick獨立出來就是因為它屬于內核一部分,方便用戶移植,而且簡單方便。學過uCOS的人都知道,以前在51,或者430上面是由定時器完成的時鐘滴答,到后面ARM公司就用到了一個好的辦法,就是在內核中標配一個SysTick,這樣下來移植系統不用那么麻煩了。

SysTick除了在操作系統中起到作用,其實在裸機程序中也起到很大作用,比如:定期處理一段程序、超時定時、串口接收超時等,今天就以“定期處理一段程序”為例來說一下。

說到操作系統,后期我也會花一定時間講解一下uCOS操作系統,感興趣的朋友可以關注一下。

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

本著免費分享的原則,將講解的工程源代碼分享給大家,還望看到的朋友關注一下微信公眾號,并將文章分享給你的朋友。

下載

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

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

https://yunpan.cn/cSVIp4UeSpA9B訪問密碼 f486

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

https://yunpan.cn/crBUdUGdYKam2訪問密碼 ca90

內容講解

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

關于“STM32F103 SysTick系統滴答”我把重要的幾點在下面分別講述:

一、配置并初始化SysTick


該函數位于main.c文件下面;

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

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

二、SysTick_Config函數詳情


該函數位于core_cm3.c文件下面;

這個函數是芯片標志的函數接口,我大概講解一下吧,設置重載值,設置中斷優先級,配置并初始化SysTick。

三、SysTick中斷


該函數位于stm32f10x_it.c文件下面;

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

四、SysTick寄存器

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


說明

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

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

    關注

    7

    文章

    175

    瀏覽量

    78039
  • Systick
    +關注

    關注

    0

    文章

    62

    瀏覽量

    12975
  • STM32F10
    +關注

    關注

    0

    文章

    44

    瀏覽量

    15540
收藏 人收藏

    評論

    相關推薦

    STM8S103F系列支持滴答時鐘嗎?

    STM8S103F系列支持滴答時鐘嗎?
    發表于 05-10 07:13

    STM32F4無法通過系統存儲器地址0x1fff0000進入BootLoader引導代碼怎么解決?

    FFF0000; /* STM32F4的系統BootLoader地址 */ /* 關閉全局中斷 */ DISABLE_INT(); /* 關閉滴答定時器,復位到默認值 */ SysTic
    發表于 03-27 06:12

    STM32L431RCT6從用戶代碼區跳轉使用內置system memory bootloader無效怎么解決?

    STM32L431RCT6 從用戶代碼區跳轉使用內置system memory bootloader 無效。 1. 跳轉代碼如下,這個代碼 可以在STM32F407VET6上正常跳轉 內置
    發表于 03-26 07:54

    個人對STM32 SysTick的總結(寄存器操作)

    一、概述:SysTick是一個簡單的遞減24位計數器。如果你不需要再應用程序中嵌入操作系統,SysTick可以作為簡單的延時和產生周期性的中斷。狀態控制寄存器的第0位可以使能計數器,當前值寄存器隨著
    的頭像 發表于 01-06 08:00 ?608次閱讀
    個人對<b class='flag-5'>STM32</b> <b class='flag-5'>SysTick</b>的總結(寄存器操作)

    stm32delay函數怎么寫

    STM32的延時函數可以使用SysTick定時器來實現。SysTick定時器是一個24位的計數器,它可以在每個時鐘周期自動減少計數值,直到計數值為0時觸發中斷。我們可以利用SysTick
    的頭像 發表于 12-21 17:53 ?1037次閱讀

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

    、中斷延時以及測量函數運行時間;在實時操作系統RTOS中作為滴答定時器,用于上下文切換。采用Cortex-M內核的微處理都有SysTick定時器,方便不同處理器之間的軟件移植。SysTick
    的頭像 發表于 12-18 09:21 ?705次閱讀
    CKS32F4xx系列MCU <b class='flag-5'>SysTick</b>定時器的原理及使用方法

    FreeRTOS中Systick的問題

    在Cortex-M內核中,系統節拍由Systick時鐘提供,當配置好系統滴答時鐘后,每次時鐘中斷就會觸發中斷處理數xPortSysTickHandler
    的頭像 發表于 12-15 08:00 ?365次閱讀
    FreeRTOS中<b class='flag-5'>Systick</b>的問題

    滴答定時器在單片機中的作用?

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

    STM32SysTick時鐘源來自哪里?

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

    GD32VF103有系統滴答定時器嗎?

    GD32VF103有系統SysTick滴答定時器嗎???有它的定時器中斷嗎????我沒找到,希望有大神幫忙一下,萬分感謝!
    發表于 08-15 06:00

    STM32 SysTick配置函數

    之前使用SysTick滴答定時器都是通過查找內核編程手冊配置寄存器讓SysTick滴答定時器工作的。
    的頭像 發表于 07-22 10:21 ?1215次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>SysTick</b>配置函數

    STM32 SysTick中斷使用方法

    SysTick中斷屬于核內外設中斷器,中斷號為-1。
    的頭像 發表于 07-22 10:18 ?2341次閱讀
    <b class='flag-5'>STM32</b> <b class='flag-5'>SysTick</b>中斷使用方法

    淺析STM32 Systick查詢定時的處理過程

    STM32處理器有一個24位的系統滴答定時器SysTick,它從重新加載值開始倒數到0,然后在下一個時鐘邊緣重新加載(包裝到)STK_LOAD寄存器中的值,然后在隨后的時鐘上倒數。
    的頭像 發表于 07-21 17:47 ?1246次閱讀
    淺析<b class='flag-5'>STM32</b> <b class='flag-5'>Systick</b>查詢定時的處理過程

    STM32F407 滴答定時器

    介紹STM32F407滴答定時器配置方法、使用方式,封裝延時函數得到精確的時間。
    的頭像 發表于 07-06 14:32 ?1416次閱讀
    <b class='flag-5'>STM32</b>F407 <b class='flag-5'>滴答</b>定時器

    一個有關SYSTICK好奇的問題

    位置1,如果此時SYSTICK滴答中斷請求使能了的話,可以對CPU發起中斷請求。 根據我們平常STM32的開發經驗,通常各種外設事件發起中斷請求時,往往有相應的事件標志跟中斷響應關聯,在中斷服務程序里并將相關事件標志做清零操作
    的頭像 發表于 06-21 15:48 ?491次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>