stm32上最方便的定時器Systick[操作寄存器+庫函數(shù)]
Systick 是stm32上一個用處很多的內(nèi)設(shè),所有基于arm-cortex m3 的芯片都有這個定時器,所以考慮到平臺的可移植性時,可以多使用Systick。
Systick 是一個24位數(shù)據(jù)寬度的倒計數(shù)定時器,其計數(shù)范圍只能到 1677215(2^24),當計數(shù)到0時會從RELOAD寄存器 中自動重裝定時初值。只要不把SysTick的控制及狀態(tài)寄存器中的使能位清除,計數(shù)器就不會停止。
SysTick 可以產(chǎn)生中斷、設(shè)置中斷優(yōu)先級,有專門的中斷處理函數(shù)SysTick_Handler().庫函數(shù)作為ST公司自己的推出的框架, 在中斷這方面做了更為細致的處理。
庫函數(shù)包含的頭文件是stm32f10x.h 這個文件中 列出了完整的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,/*!