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

相关推荐
嵌入式老牛9 小时前
HC32F460_ADC驱动(三)
单片机·嵌入式硬件
秀秀更健康9 小时前
stm32: 系统时钟如何配置为72Mhz
stm32·单片机·嵌入式硬件
QAQ小菜鸟13 小时前
一、安装Altium Designer 26.1
嵌入式硬件
嵌入式-老费14 小时前
esp32开发与应用(用面包板去学模块)
嵌入式硬件
归零鸟15 小时前
WD Elements移动硬盘能识别出盘但不能出盘的修复记录
stm32·单片机·嵌入式硬件
追兮兮16 小时前
MCUQuickStart v1.1.0发布,一键生成Keil工程+RTOS模板
stm32·单片机·嵌入式硬件·freertos·gd32·keil5
国科安芯16 小时前
ASP7A84AS与主流架构兼容替代及系统级电源完整性解决方案的深度研究
单片机·嵌入式硬件·架构
kaikaile199516 小时前
STC8单片机实现简单花样DMX512控制器
单片机·嵌入式硬件
szxinmai主板定制专家16 小时前
RK3568 + CODESYS+实时系统运动控制器PLC,支持 AI 视觉目标检测,预测性维护,混合多系统部署,多路模拟量采集
arm开发·人工智能·嵌入式硬件·fpga开发
rit843249916 小时前
STM32移植NES模拟器指南
stm32·单片机·嵌入式硬件