STM32使用滴答定时器实现delayms

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

代码实现:

cpp 复制代码
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);
}

由于时钟树配置64M SYS TICK

并且设置LL_Init1msTick(64000000);

可知进入SYSTICK中断的频率为:

64000000/1000 / 64*1000000 = 0.001S

转化成MS 为 1MS

注意需要添加 SysTick_CTRL_TICKINT_Msk

这样才会触发倒计时完毕进入中断

也可以调用LL_SYSTICK_EnableIT

每1000MS实现一次打印

也可以用GPIO控制,使用示波器进行查看

相关推荐
项目題供诗2 分钟前
STM32-按键控制LED&光敏传感器控制蜂鸣器(五)
stm32·单片机·嵌入式硬件
猪八戒1.012 分钟前
Allergo Cadence学习笔记
嵌入式硬件
危桥带雨12 分钟前
WDG理论知识
stm32·单片机·嵌入式硬件
minglie131 分钟前
单片机内存管理CmemTable
单片机·嵌入式硬件
济61737 分钟前
FreeRTOS 控制任务设计 (2)--- 运动学逆解 + PID 闭环 + PWM 驱动全流程实现
stm32·单片机·嵌入式·freertos
szxinmai主板定制专家1 小时前
基于RK3588超小体积,轻巧,长续航的无人机AI模块,支持视频跟踪
arm开发·人工智能·嵌入式硬件·fpga开发·无人机
小柯博客1 小时前
STM32MP2 RIF资源隔离框架详解:从架构到实践
网络·stm32·单片机·嵌入式硬件·架构·嵌入式·yocto
SunAqua1 小时前
《MCU与DSP芯片笔记》一、DSP芯片TI C2000系列TMS320F28035
笔记·单片机·嵌入式硬件
listhi5202 小时前
基于STM32的高精度电子秤设计与实现
stm32·单片机·嵌入式硬件
Hello_Embed3 小时前
嵌入式上位机开发入门(二十九):JsonRPC TCP Server
网络·单片机·网络协议·tcp/ip·json·嵌入式