STM32F1_SysTick系統(tǒng)滴答
前言
今天講解“STM32F103 SysTick系統(tǒng)滴答”,“SysTick系統(tǒng)滴答”是屬于Cortex-M3內(nèi)核的一部分,主要是為運行的操作系統(tǒng)提供滴答時鐘,如常見的操作系統(tǒng):uCOS、RTOS等。不管M3芯片屬于哪一家公司,它都標配有SysTick這一部分。因此,它屬于芯片內(nèi)核的一部分,主要是為了方便操作系統(tǒng)的移植。
其實,SysTick能實現(xiàn)的功能,都可以由TIM來實現(xiàn)。SysTick無非就是定時中斷的功能,它完全可以由TIM定時器來完成。之所以SysTick獨立出來就是因為它屬于內(nèi)核一部分,方便用戶移植,而且簡單方便。學過uCOS的人都知道,以前在51,或者430上面是由定時器完成的時鐘滴答,到后面ARM公司就用到了一個好的辦法,就是在內(nèi)核中標配一個SysTick,這樣下來移植系統(tǒng)不用那么麻煩了。
SysTick除了在操作系統(tǒng)中起到作用,其實在裸機程序中也起到很大作用,比如:定期處理一段程序、超時定時、串口接收超時等,今天就以“定期處理一段程序”為例來說一下。
說到操作系統(tǒng),后期我也會花一定時間講解一下uCOS操作系統(tǒng),感興趣的朋友可以關(guān)注一下。
本文特點:1.提供講解的軟件工程; 2.重點代碼截圖,配講解。
本著免費分享的原則,將講解的工程源代碼分享給大家,還望看到的朋友關(guān)注一下微信公眾號,并將文章分享給你的朋友。
下載
提供下載的“軟件工程”都是在硬件板子上進行多次測試、并保證沒問題才上傳至360云盤。
今天的軟件工程下載地址(360云盤):
https://yunpan.cn/cSVIp4UeSpA9B訪問密碼 f486
STM32F10x的資料可以在我360云盤下載:
https://yunpan.cn/crBUdUGdYKam2訪問密碼 ca90
內(nèi)容講解
工程概要說明: 系統(tǒng)上電初始化完成,配置SysTick,1秒滴答(中斷)10次,執(zhí)行的一段程序就是“變化LED”,運行該程序就可以看到定義的LED不在1秒鐘閃爍10次。
關(guān)于“STM32F103 SysTick系統(tǒng)滴答”我把重要的幾點在下面分別講述:
一、配置并初始化SysTick
該函數(shù)位于main.c文件下面;
上圖中紅色箭頭處10代表的意思就是:一秒鐘滴答(中斷)10次,可自行修改這個值。用于系統(tǒng),我們一般在100 --- 1000之間,也就是要滴答100 --- 1000次。
獲取系統(tǒng)時鐘,正常情況下,我們這里的RCC_ClocksStructure.SYSCLK_Frequency應該和SystemCoreClock一樣,最好像上面程序中直接獲取系統(tǒng)時鐘,原因很簡單,有可能SystemCoreClock與實際的不一樣。
二、SysTick_Config函數(shù)詳情
該函數(shù)位于core_cm3.c文件下面;
這個函數(shù)是芯片標志的函數(shù)接口,我大概講解一下吧,設置重載值,設置中斷優(yōu)先級,配置并初始化SysTick。
三、SysTick中斷
該函數(shù)位于stm32f10x_it.c文件下面;
處理的程序就變化LED,也就是注釋的語句。
四、SysTick寄存器
有4個寄存器控制SysTick定時器,在STM32參考手冊中沒有提到,位于“Cortex-M3權(quán)威指南Cn”中,在我提供的“STM32F10x的資料”中下載。
說明
今天提供的軟件工程基于STM32F103大容量芯片,其實只要適當修改工程的部分配置,STM32F1的芯片都適用。