STM32的Hal库中 Systick是在哪里进行初始化的?

在STM32的HAL库中,Systick的初始化通常发生在几个关键的函数调用过程中。以下是Systick初始化的主要步骤和位置:

  1. HAL_Init()函数调用

    • 在main()函数的开始部分,通常会调用HAL_Init()函数来初始化HAL库。
    • HAL_Init()函数内部会调用HAL_InitTick()函数,这是Systick初始化的关键一步。
  2. HAL_InitTick()函数调用

    • HAL_InitTick()函数的主要作用是配置Systick定时器。
    • 在这个函数内部,会调用HAL_SYSTICK_Config()函数,该函数根据系统时钟(SystemCoreClock)和设定的Tick频率(uwTickFreq)来计算Systick的重装载值(LOAD寄存器)。
    • 重装载值是Systick从该值开始递减计数,直到0时产生中断,并重新加载此值继续计数。
  3. HAL_SYSTICK_Config()函数调用

    • HAL_SYSTICK_Config()函数接收一个参数,该参数是根据系统时钟和Tick频率计算出的重装载值。
    • 函数内部会配置Systick的相关寄存器,包括CTRL寄存器(控制寄存器,设置时钟源、中断使能和使能Systick)、LOAD寄存器(重装载值寄存器)和VAL寄存器(当前值寄存器)。
  4. SystemClock_Config()函数调用(可选,但通常必要):

    • 在实际应用中,为了使Systick的时钟源更加稳定,通常会配置外部晶振,并通过SystemClock_Config()函数来更新系统时钟。
    • 在SystemClock_Config()函数的最后,通常会再次调用HAL_InitTick()函数,以确保Systick的时钟源和系统时钟保持一致。

Systick的初始化过程涉及多个函数调用,从main()函数中的HAL_Init()开始,经过HAL_InitTick()和HAL_SYSTICK_Config(),最终完成Systick的配置。此外,为了确保Systick的时钟源稳定,可能还需要调用SystemClock_Config()函数来配置系统时钟。

相关推荐
潜创微科技21 分钟前
4K 转 MIPI 硬核方案|ITE IT6616 HDMI1.4 转 MIPI CSI/DSI 转换芯片解析
嵌入式硬件·音视频
三佛科技-134163842121 小时前
FT32F103系列与APM32F103,STM32F103之间的对比,能否替换?
单片机·嵌入式硬件·物联网·智能家居·pcb工艺
李永奉2 小时前
杰理可视化SDK开发-蓝牙的可发现可连接和回连
单片机·嵌入式硬件·物联网·语音识别
【ql君】qlexcel3 小时前
Visual Studio Code开发STM32设置头文件宏定义uint32_t报错
vscode·stm32·vs code·头文件宏定义·uint32_t报错·uint8_t报错·uint16_t报错
振浩微433射频芯片4 小时前
标签界的“千里眼”:VRT5312,150cm超远读写距离,重新定义RFID新可能!
科技·单片机·嵌入式硬件·物联网
andylauren4 小时前
论单点接地的重要性——从MP3模块噪声问题看接地设计的关键
嵌入式硬件
修勾勾L4 小时前
使用VSCode开发嵌入式开发详细教程——步骤二项目实战
嵌入式硬件
染予5 小时前
定时器时钟源介绍
单片机·嵌入式硬件
时空自由民.5 小时前
ESP32编译固件内存信息解读
单片机·性能优化
LCMICRO-133108477466 小时前
长芯微LPS6288完全P2P替代TPS61288,是一款具有 15A 开关电流的全集成同步升压转换器
stm32·单片机·嵌入式硬件·fpga开发·硬件工程·同步升压转换器