打印
[应用相关]

STM32 HAL库 Systick使用笔记

[复制链接]
271|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ST, AC, TI, ck, ic
一、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,三种选项。

如果需要更高频率,可以将HAL_SYSTICK_Config(SystemCoreClock / (1000U / uwTickFreq)参数中的1000调大实现。该函数可以在hal.c中找到。


二、使用时的注意事项
1.需要注意的是,调高Systick的中断频率会导致系统频繁中断,应该代码效率,实际应用中不建议将Systick设置的过高。
如需快于1ms的时间基准,建议再开一个定时器,通过读取TIMx->CNT来获取。
2.在用户的其他中断中使用HAL_Delay(),如果遇到延时跳不出的情况,检查用户中断优先级,建议用户中断优先级设置尽可能的低。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

473

帖子

1

粉丝