stm32上最方便的定時(shí)器Systick[操作寄存器+庫(kù)函數(shù)]
Systick 是stm32上一個(gè)用處很多的內(nèi)設(shè),所有基于arm-cortex m3 的芯片都有這個(gè)定時(shí)器,所以考慮到平臺(tái)的可移植性時(shí),可以多使用Systick。
Systick 是一個(gè)24位數(shù)據(jù)寬度的倒計(jì)數(shù)定時(shí)器,其計(jì)數(shù)范圍只能到 1677215(2^24),當(dāng)計(jì)數(shù)到0時(shí)會(huì)從RELOAD寄存器 中自動(dòng)重裝定時(shí)初值。只要不把SysTick的控制及狀態(tài)寄存器中的使能位清除,計(jì)數(shù)器就不會(huì)停止。
SysTick 可以產(chǎn)生中斷、設(shè)置中斷優(yōu)先級(jí),有專(zhuān)門(mén)的中斷處理函數(shù)SysTick_Handler().庫(kù)函數(shù)作為ST公司自己的推出的框架, 在中斷這方面做了更為細(xì)致的處理。
庫(kù)函數(shù)包含的頭文件是stm32f10x.h 這個(gè)文件中 列出了完整的stm32中斷向量表(截取部分):
/******Cortex-M3ProcessorExceptionsNumbers***************************************************/NonMaskableInt_IRQn=-14,/*!<2NonMaskableInterrupt*/MemoryManagement_IRQn=-12,/*!<4Cortex-M3MemoryManagementInterrupt*/BusFault_IRQn=-11,/*!<5Cortex-M3BusFaultInterrupt*/UsageFault_IRQn=-10,/*!<6Cortex-M3UsageFaultInterrupt*/SVCall_IRQn=-5,/*!<11Cortex-M3SVCallInterrupt*/DebugMonitor_IRQn=-4,/*!<12Cortex-M3DebugMonitorInterrupt*/PendSV_IRQn=-2,/*!<14Cortex-M3PendSVInterrupt*/SysTick_IRQn=-1,/*!<15Cortex-M3SystemTickInterrupt*//******STM32specificInterruptNumbers*********************************************************/WWDG_IRQn=0,/*!