最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

STM32 - 利用 SysTick 實現(xiàn)非中斷式延時函數(shù)

2023-03-16 15:09 作者:山路旁的輝翎  | 我要投稿

SysTick 是 Cortex-M 系列內(nèi)核中普遍存在的系統(tǒng)定時器,共 24 位(高 8 位保留),通過不斷遞減進(jìn)行計數(shù),到達(dá) 0 時將?SYST_CSR 的 COUNTFLAG?標(biāo)志位置?1 并根據(jù) TICKINT 標(biāo)志位決定是否產(chǎn)生內(nèi)核中斷。

因此,利用 SysTick 實現(xiàn)延時函數(shù)就分為中斷式和非中斷式兩種。前者容易產(chǎn)生優(yōu)先級沖突,也不適合在中斷函數(shù)中調(diào)用;這里選擇的是后者,直接對寄存器進(jìn)行操作和查詢。需要注意的是,使用 FreeRTOS 等實時操作系統(tǒng)時,修改?SysTick 會影響系統(tǒng)時鐘,建議采用軟件延時或使用其他定時器。

代碼部分如下(包含 SysTickDelay.c?以及 SysTickDelay.h):

延時函數(shù)的準(zhǔn)確性依賴于 SYSCLK,這里使用的是 STM32F1?系列單片機(jī),因此 SYSCLK 頻率設(shè)置為 72 MHz。若使用 STM32F4 系列,則需修改 SysTickDelay.c

其他代碼主要用于操作寄存器,具體信息如下:

SysTick 相關(guān)寄存器

更多內(nèi)容參見?ARM 官網(wǎng):https://developer.arm.com/documentation/dui0552/a/cortex-m3-peripherals/system-timer--systick

隨便寫的代碼,還能進(jìn)一步優(yōu)化(主要是為了把文件存檔,方便日后參考)。

STM32 - 利用 SysTick 實現(xiàn)非中斷式延時函數(shù)的評論 (共 條)

分享到微博請遵守國家法律
商丘市| 绥中县| 株洲市| 固原市| 行唐县| 康定县| 贵南县| 南汇区| 盘山县| 营山县| 平阳县| 监利县| 江华| 永修县| 新乡县| 澄江县| 青田县| 南昌县| 上高县| 汝城县| 馆陶县| 利川市| 清镇市| 南丹县| 读书| 揭阳市| 奉贤区| 二连浩特市| 津市市| 德清县| 美姑县| 仲巴县| 神木县| 盈江县| 巴中市| 台湾省| 姜堰市| 习水县| 彰武县| 高碑店市| 石家庄市|