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

相关推荐
纳祥科技几秒前
NX699,内置精度±5%晶振的lightning苹果PD快充12W
单片机·手机·音视频
点灯小铭18 分钟前
基于单片机的图书馆座位管理系统设计与实现
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
清风66666622 分钟前
基于单片机的两路PWM信号输出及频率占空比相位差调节系统
单片机·嵌入式硬件·毕业设计·课程设计·期末大作业
LeoZY_23 分钟前
CH347应用 USB转JTAG功能之:probe-rs搭配CH347下载MCU命令全指南
单片机·嵌入式硬件·mcu·开源·github
Zyed38 分钟前
[STM32]Day11-软件实现SPI读写W25Q64
stm32·单片机·嵌入式硬件
普中科技1 小时前
【普中STM32F1xx开发攻略--标准库版】-- 第 48 章 FATFS 文件系统实验
stm32·单片机·嵌入式硬件·文件系统·开发板·fatfs·普中科技
振南的单片机世界1 小时前
中央对齐PWM:边沿对齐EMI大,中央对齐更安静
arm开发·stm32·单片机·嵌入式硬件
清风6666661 小时前
基于51单片机的电阻测量仪设计
单片机·嵌入式硬件·毕业设计·51单片机·课程设计·期末大作业
三佛科技-187366133971 小时前
GD32F103VDT6是什么芯片?GD32 ARM Cortex-M3微控制器MCU解析
arm开发·单片机·嵌入式硬件
广州灵眸科技有限公司1 小时前
“一机一码”安全加密方案
网络·单片机·嵌入式硬件·安全