无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(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ù)的評論 (共 條)

分享到微博請遵守國家法律
浠水县| 英吉沙县| 聂荣县| 怀仁县| 玉田县| 阿巴嘎旗| 壶关县| 洮南市| 南汇区| 定结县| 遵义县| 全州县| 驻马店市| 温泉县| 青铜峡市| 皋兰县| 喜德县| 聊城市| 抚松县| 元朗区| 拉孜县| 北票市| 航空| 林周县| 沈阳市| 丹凤县| 垣曲县| 毕节市| 金湖县| 轮台县| 安仁县| 石楼县| 丹棱县| 固阳县| 博白县| 饶河县| 都江堰市| 榆树市| 武隆县| 尚义县| 封丘县|