3、SysTick配置流程 ? 首先配置RCC:选择系统时钟、配置总线时钟、使能外围设备时钟等; ? 配置NVIC:选择中断优先级组,设置SysTick中断优先级,使能SysTick中断通道; ? 编写SysTick中断处理函数; ? 配置SysTick时钟: n 设置SysTick时钟源(不需要,默认选择HCLK的8分频作为SysTick系统定时器的时钟源):调用SysTick_CLKSourceConfig()函数; n 设置SysTick时钟重装值:调用SysTick_SetReload(); n 使能SysTick时钟中断(根据具体应用需要):调用SysTick_ITConfig()函数; ? 使能SysTick时钟:调用SysTick_CounterCmd()函数; 然后还可以调用SysTick_GetCounter()函数获取SysTick系统时钟计数器的当前值;也可以调用SysTick_GetFlagStatus()函数检查指定的SysTick标志位是否设置(没有开启中断,通过软件查询方式检查系统定时器是否计数到0)。 SysTick系统定时器的中断标志位在系统时钟节拍控制与状态寄存器CTRL的COUNTFLAG位,该位由定时器计数到0置1,读取时清零。因此可以调用函数SysTick_GetFlagStatus(SysTick_FLAG_COUNT)来清除COUNTFLAG标志位。 经过测试:不调用SysTick_GetFlagStatus(SysTick_FLAG_COUNT)函数来清除标志位,在每次系统时钟节拍SysTick在计数为0时,也都能进入中断处理函数。但程序的严密性考虑,最好还是调用该函数。
|