stm32上最方便的定时器Systick[操作寄存器+库函数]
扫描二维码
随时随地手机看文章
Systick 是stm32上一个用处很多的内设,所有基于arm-cortex m3 的芯片都有这个定时器,所以考虑到平台的可移植性时,可以多使用Systick。
Systick 是一个24位数据宽度的倒计数定时器,其计数范围只能到 1677215(2^24),当计数到0时会从RELOAD寄存器 中自动重装定时初值。只要不把SysTick的控制及状态寄存器中的使能位清除,计数器就不会停止。
SysTick 可以产生中断、设置中断优先级,有专门的中断处理函数SysTick_Handler().库函数作为ST公司自己的推出的框架, 在中断这方面做了更为细致的处理。
库函数包含的头文件是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,/*!