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控制,使用示波器进行查看

相关推荐
学生董格22 分钟前
[嵌入式embed]Keil5-STM32F103C8T6(江协科技)+移植RT-Thread v3.15模版
stm32·嵌入式硬件·rt-thread·keil5·江协科技
酷飞飞42 分钟前
掌握DMA基于GD32F407VE的天空星的配置
stm32·单片机·嵌入式硬件·arm
清风6666661 小时前
基于单片机的Boost升压斩波电源电路
单片机·嵌入式硬件·毕业设计·课程设计
qiuiuiu4131 小时前
正点原子RK3568学习日记-GIT
linux·c语言·开发语言·单片机
搞一搞汽车电子7 小时前
单片机的堆\栈\Flash\Ram区别和联系
单片机·嵌入式硬件
李永奉10 小时前
STM32-认识STM32
stm32·单片机·嵌入式硬件
La Pulga11 小时前
【STM32】I2C通信—软件模拟
c语言·stm32·单片机·嵌入式硬件·mcu
CiLerLinux11 小时前
第五十二章 ESP32S3 UDP 实验
网络·单片机·嵌入式硬件·网络协议·udp
CFZPL14 小时前
stm32延时函数
单片机·嵌入式硬件
li星野14 小时前
打工人日报#20251008
单片机·嵌入式硬件