登录/注册

stm32使用systick

更多

在STM32中使用SysTick(系统定时器)可以实现精确的延时或作为系统时基。以下是基本使用方法:


1. SysTick简介


2. 配置步骤(以标准外设库为例)

(1) 设置重装载值

计算重装载值(根据系统时钟频率和所需中断周期):

// 系统时钟频率(假设为72MHz)
#define SYSTEM_CLK_FREQ 72000000

// 1ms中断一次
uint32_t reload_value = (SYSTEM_CLK_FREQ / 1000) - 1;

// 设置重装载值并启用SysTick
SysTick_Config(reload_value);

(2) 编写中断服务函数

volatile uint32_t ticks = 0; // 全局计数器

void SysTick_Handler(void) {
    ticks++; // 每1ms增加一次
}

(3) 实现延时函数

// 阻塞式延时(单位:ms)
void Delay_ms(uint32_t ms) {
    uint32_t start = ticks;
    while ((ticks - start) < ms);
}

3. HAL库配置方法

如果使用STM32CubeMX和HAL库:

// 初始化SysTick(通常CubeMX自动配置)
HAL_SYSTICK_Config(SystemCoreClock / 1000); // 1ms中断

// 直接使用HAL延时函数
HAL_Delay(1000); // 延时1秒

4. 注意事项


5. 示例代码(轮询方式)

// 微秒级延时(近似值,需根据时钟调整)
void Delay_us(uint32_t us) {
    uint32_t start = SysTick->VAL;
    uint32_t clk = SystemCoreClock / 1000000; // 1us的计数值
    while ((start - SysTick->VAL) < (us * clk));
}

通过以上步骤,您可以快速在STM32中利用SysTick实现精准延时或系统时基功能。

STM32SysTick时钟源来自哪里?

STM32的SysTick时钟源来自哪里?

2023-10-26 15:58:08

STM32 SysTick配置函数

之前使用SysTick滴答定时器都是通过查找内核编程手册配置寄存器让SysTick滴答定时器工作的。

2023-07-22 10:21:08

STM32 SysTick中断使用方法

SysTick中断属于核内外设中断器,中断号为-1。

2023-07-22 10:18:38

0STM32中的SysTick是个啥?咋用?(可下载)

中的使能位清除,就永不停息。SysTick在《STM32xx中文参考手册》里面基本没有介绍,其详细介绍,内核编程手册中。在工程中我们将以STM32

资料下载 松山归人 2025-04-01 14:52:44

STM32学习笔记(5)——系统定时器SysTick

单独拿出来讲的一个内核外设(所以不要期望在STM32中文参考手册找到它!即使找到也只会叫你看cm3内核编程手册),说明它真的很重要。STM32学习笔记(5)——系统定时器

资料下载 佚名 2021-12-23 19:56:46

STM32入门(十五)----SysTick系统定时器

的Cortex-M内核的单片机都具有这个定时器。《STM32参考手册》里的一句话:关于Cortex-M3核心、 SysTick定时器和NVIC的详细说明,请参考另一篇ST的文档和一篇ARM的文档:《

资料下载 佚名 2021-12-01 15:06:07

STM32单片机SysTick实现精确延时

STM32单片机SysTick实现精确延时

资料下载 笑过就走 2021-11-23 18:21:28

STM32菜鸟成长记录---系统滴答定时器(systick)应用资料下载

电子发烧友网为你提供STM32菜鸟成长记录---系统滴答定时器(systick)应用资料下载的电子资料下载,更有其他相关的电路图、源代码、课件教程、中文资料、英文资料、参考设计、用户指南、解决方案等资料,希望可以帮助

资料下载 手托初梦 2021-04-16 08:51:42

STM32 SysTick定时器讲解

本文将介绍SysTick定时器、其工作原理与寄存器、及对应的应用实例

2023-04-21 11:31:17

STM32入门学习笔记之SysTick时钟

Cortex-M3内核的处理器,内部包含了一个SysTick定时器,SysTick是一个24位的倒计数定时器,当计数到0时,将从ReLoad寄存器中自动重装载定时初值,开始新一轮计数。只要不把它在

2023-02-16 09:59:11

一文详解STM32的嘀嗒时钟(SysTick)

嘀嗒时钟(SysTick)是一个简单的系统时钟节拍计数器,它属于Cortex-M4内核嵌套向量中断控制器(NVIC)里的一个功能单元。他是一个24位的倒计时定时器(在NVIC中),当systick

2023-01-19 18:11:00

STM32 SYSTICK定时器常见问题

我们知道,STM32库函数里通常使用来自内核的系统定时器SYSTICK作为时基,实现计数延时。一般来讲,ST公司提供的库函数里将SYSTICK定

2022-09-13 16:20:10

如何使用STM32单片机systick来实现延时定时功能

1、前言 CM4内核的处理和CM3一样,内部都包含了一个SysTick定时器,SysTick 是一个24 位的倒计数定时器,当计到0 时,将从RELOAD 寄存器中自动重装载定时初值。只要不把它在

2021-02-14 06:25:00

STM32F1_ SysTick系统滴答

STM32F1_SysTick系统滴答

2020-04-08 11:00:54

STM32中的SysTick时钟源来自哪里?

STM32的SysTick时钟源来自哪里?

2020-03-03 14:32:55

7天热门专题 换一换
相关标签