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()函数来配置系统时钟。

相关推荐
hazy1k35 分钟前
51单片机基础-ADC模数转换
stm32·单片机·嵌入式硬件·51单片机·1024程序员节
顾晨阳——1 小时前
GPIO总结
单片机·嵌入式硬件·gpio
嵌入式老牛1 小时前
【无标题】
单片机·嵌入式硬件·rtc
IT阳晨。1 小时前
【STM32】看门狗
stm32·嵌入式硬件
mftang1 小时前
IO 开漏模式的特征和STM32 IO开路模式的配置和应用
stm32·嵌入式硬件·开漏模式
普中科技2 小时前
【普中DSP28335开发攻略】-- 第 9 章 蜂鸣器实验
单片机·嵌入式硬件·蜂鸣器·dsp28335·ccs·普中科技
ShiMetaPi3 小时前
操作【GM3568JHF】FPGA+ARM异构开发板 使用指南:串口
arm开发·单片机·嵌入式硬件·fpga开发·rk3568
点灯小铭3 小时前
基于单片机的两路PWM信号输出及频率占空比相位差调节系统
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
普中科技3 小时前
【普中STM32F1xx开发攻略--标准库版】-- 第 9 章 STM32 固件库介绍
stm32·单片机·嵌入式硬件·arm·普中科技·固件库
天天爱吃肉82184 小时前
我回来了,依然关注新能源汽车研发测试,
嵌入式硬件·汽车