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

相关推荐
SY师弟18 分钟前
51单片机——交通指示灯控制器设计
c语言·单片机·嵌入式硬件·51单片机
weixin_413920611 小时前
标签部件(lv_label)
单片机·嵌入式硬件
2301_800399721 小时前
stm32 ADC单通道转换
stm32·单片机·嵌入式硬件
高工智能汽车2 小时前
抢跑「中央计算+区域控制」市场,芯驰科技高端智控MCU“芯”升级
科技·单片机·嵌入式硬件
HHONGQI1232 小时前
STM32 之网口资源
stm32·单片机·嵌入式硬件
GodKK老神灭2 小时前
STM32 启动文件分析
stm32·单片机·嵌入式硬件
free-elcmacom3 小时前
labview硬件采集<2>——使用布尔控件控制硬件的LED
单片机·嵌入式硬件·labview
懒惰的bit11 小时前
STM32F103C8T6板子使用说明
stm32·单片机·嵌入式硬件
芯岭技术12 小时前
PY32系列单片机离线烧录器,可配置选项字节和上机台批量烧录
单片机·嵌入式硬件
阿川!14 小时前
嵌入式软件--stm32 DAY7 I2C通讯上
stm32·单片机·嵌入式硬件·mcu