当前位置:   article > 正文

STM32使用滴答定时器实现delayms

STM32使用滴答定时器实现delayms

STM32上使用SysTick实现jiffies(时间戳)并且实现delay_ms
代码实现:

volatile uint32_t jiffies = 0; // 用于记录系统运行的jiffies数
void SysTick_Handler(void)
{
    /* 每次SysTick中断,jiffies增加 */
    jiffies++;
}

uint32_t tick_get_jiffies()
{
    return jiffies;
}

void delay_ms(uint32_t ms)
{
    uint32_t _tick = tick_get_jiffies();
    while(tick_get_jiffies() - _tick < ms);
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

由于时钟树配置64M SYS TICK
在这里插入图片描述

并且设置LL_Init1msTick(64000000);
在这里插入图片描述在这里插入图片描述
可知进入SYSTICK中断的频率为:
64000000/1000 / 64*1000000 = 0.001S
转化成MS 为 1MS
在这里插入图片描述
注意需要添加 SysTick_CTRL_TICKINT_Msk
这样才会触发倒计时完毕进入中断
也可以调用LL_SYSTICK_EnableIT
在这里插入图片描述
每1000MS实现一次打印
也可以用GPIO控制,使用示波器进行查看

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/309351
推荐阅读
相关标签
  

闽ICP备14008679号