【个人纪录】STM32G431RBT6 HAL_SYSTICK_Config和HAL_GetTick

HAL_GetTickHAL_SYSTICK_Config是在使用 HAL 库(如 STM32 HAL 库)进行嵌入式系统开发时与系统滴答定时器相关的两个函数,它们之间存在着紧密的联系


功能及作用

  • HAL_SYSTICK_Config():这是一个用于配置系统滴答定时器(SysTick)的函数。SysTick 是一个 24 位的递减计数器,它可以产生周期性的中断,为系统提供一个基本的时间基准。HAL_SYSTICK_Config()函数主要用于设置 SysTick 定时器的时钟源、重载值等参数,从而确定 SysTick 定时器的计数频率和中断周期,进而为整个系统的时间管理和任务调度等提供基础。

  • HAL_GetTick():一般来说,hal_gettick()函数用于获取系统滴答定时器从启动以来的计数值,该计数值会随着时间的推移不断增加,通过读取这个计数值,用户可以获取系统已经运行的时间信息,常用于实现软件定时、延时、时间戳等功能。


    /@param  TicksNumb: Specifies the ticks Number of ticks between two interrupts.
    
    uint32_t HAL_SYSTICK_Config(uint32_t TicksNumb)
    {
       return SysTick_Config(TicksNumb);
    }
    
    HAL_SYSTICK_Config(170000000 / 1000);  //SystemCoreClock = 170000000次/每秒
    	                                   //reload register = 170000000 / 1000 = 170000

* @param  TicksNumb: Specifies the ticks Number of ticks between two interrupts.可知:

TicksNumb是‌SysTick定时器的滴答数(ticks)在两次中断之间计数的次数,即自动重装载寄存器内部存的值,每次SysTick递减至零后再装载。

SysTick定时器减1所用的时间Tsys = 1 / SYSCLK = 1 / 170 000 000 (s)

所以当重装载数值为170000时,产生一次中断信号的时间就为:

720 * Tsys = 170 000 / 170 000 000 = 1 / 1 000 (s) = 1ms

因此HAL_SYSTICK_Config()的括号内部填入170 000 000 / 1 000 。


HAL_GetTick() 函数返回的系统滴答计数通常是每毫秒增加1 。

若加入判断,可实现每秒去做你想让它做的事情

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值