前言
今天講解“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來實(shí)現(xiàn)。SysTick無非就是定時(shí)中斷的功能,它完全可以由TIM定時(shí)器來完成。之所以SysTick獨(dú)立出來就是因?yàn)樗鼘儆趦?nèi)核一部分,方便用戶移植,而且簡(jiǎn)單方便。學(xué)過uCOS的人都知道,以前在51,或者430上面是由定時(shí)器完成的時(shí)鐘滴答,到后面ARM公司就用到了一個(gè)好的辦法,就是在內(nèi)核中標(biāo)配一個(gè)SysTick,這樣下來移植系統(tǒng)不用那么麻煩了。
SysTick除了在操作系統(tǒng)中起到作用,其實(shí)在裸機(jī)程序中也起到很大作用,比如:定期處理一段程序、超時(shí)定時(shí)、串口接收超時(shí)等,今天就以“定期處理一段程序”為例來說一下。
說到操作系統(tǒng),后期我也會(huì)花一定時(shí)間講解一下uCOS操作系統(tǒng),感興趣的朋友可以關(guān)注一下。
本文特點(diǎn):1.提供講解的軟件工程; 2.重點(diǎn)代碼截圖,配講解。
本著免費(fèi)分享的原則,將講解的工程源代碼分享給大家,還望看到的朋友關(guān)注一下微信公眾號(hào),并將文章分享給你的朋友。
提供下載的“軟件工程”都是在硬件板子上進(jìn)行多次測(cè)試、并保證沒問題才上傳至360云盤。
今天的軟件工程下載地址(360云盤):
https://yunpan.cn/cSVIp4UeSpA9B訪問密碼 f486
STM32F10x的資料可以在我360云盤下載:
https://yunpan.cn/crBUdUGdYKam2訪問密碼 ca90
內(nèi)容講解
工程概要說明: 系統(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,也就是注釋的語句。
四、SysTick寄存器
有4個(gè)寄存器控制SysTick定時(shí)器,在STM32參考手冊(cè)中沒有提到,位于“Cortex-M3權(quán)威指南Cn”中,在我提供的“STM32F10x的資料”中下載。
說明
今天提供的軟件工程基于STM32F103大容量芯片,其實(shí)只要適當(dāng)修改工程的部分配置,STM32F1的芯片都適用。
-
uCOS
+關(guān)注
關(guān)注
7文章
175瀏覽量
78376 -
Systick
+關(guān)注
關(guān)注
0文章
62瀏覽量
13089 -
STM32F10
+關(guān)注
關(guān)注
0文章
45瀏覽量
15627
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論