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

相关推荐
wenchm1 小时前
细说STM32F407单片机轮询方式读写SPI FLASH W25Q16BV
stm32·单片机·嵌入式硬件
委员1 小时前
基于NodeMCU的物联网电灯控制系统设计
单片机·物联网·嵌入式·nodemcu··lu_asr01·gy-302
北国无红豆1 小时前
【CAN总线】STM32的CAN外设
c语言·stm32·嵌入式硬件
单片机学习之路2 小时前
【C语言】结构
c语言·开发语言·stm32·单片机·51单片机
m0_748254093 小时前
STM32--超声波模块(HC—SR04)(标准库+HAL库)
stm32·单片机·嵌入式硬件
南城花随雪。3 小时前
单片机:实现FFT快速傅里叶变换算法(附带源码)
单片机·嵌入式硬件·算法
逝灮4 小时前
【蓝桥杯——物联网设计与开发】基础模块8 - RTC
stm32·单片机·嵌入式硬件·mcu·物联网·蓝桥杯·rtc
LXL_244 小时前
模拟——郑益慧_笔记1_绪论
嵌入式硬件
weixin_4526006910 小时前
串行时钟保持芯片D1380/D1381,低功耗工作方式自带秒、分、时、日、日期、月、年的串行时钟保持芯片,每个月多少天以及闰年能自动调节
科技·单片机·嵌入式硬件·时钟·白色家电电源·微机串行时钟
森旺电子13 小时前
51单片机仿真摇号抽奖机源程序 12864液晶显示
单片机·嵌入式硬件·51单片机