前言
今天講解“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瀏覽量
78364 -
Systick
+關注
關注
0文章
62瀏覽量
13071 -
STM32F10
+關注
關注
0文章
45瀏覽量
15624
發布評論請先 登錄
相關推薦
評論