STM32 HAL库 Systick使用笔记

一、Systick 在HAL库中作用:
1.外设驱动程序的超时判断;
2.HAL_Delay()函数的时基;
在cube生成的代码中,main函数中HAL_RCC_ClockConfig();初始化系统时钟的时候Systick被初始化。
初始化时,Cube默认设置Systick中断优先级为最高优先级,中断周期由函数HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)确定,默认值为1ms。
中断频率可以通过修改HAL_TICK_FREQ_DEFAULT参数修改,hal.h中给出10Hz,100Hz,1KHz,三种选项。
STM32 HAL库 Systick使用笔记_第1张图片
如果需要更高频率,可以将HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)参数中的1000调大实现。该函数可以在hal.c中找到。
STM32 HAL库 Systick使用笔记_第2张图片
二、使用时的注意事项
1.需要注意的是,调高Systick的中断频率会导致系统频繁中断,应该代码效率,实际应用中不建议将Systick设置的过高。
如需快于1ms的时间基准,建议再开一个定时器,通过读取TIMx->CNT来获取。
2.在用户的其他中断中使用HAL_Delay(),如果遇到延时跳不出的情况,检查用户中断优先级,建议用户中断优先级设置尽可能的低。

你可能感兴趣的:(STM32)