Day18:系统滴答定时器 (SysTick)

SysTick 功能:

24 位递减计数器,提供精确系统时基

时钟源:HCLK/8 (9MHz) 或 HCLK (72MHz)

定时时间:(重装载值 + 1)/ 时钟频率

SysTick 配置:

// 1ms定时

void SysTick_Init(void){

SysTick->LOAD = 71999; // 72MHz/72000=1KHz(1ms)

SysTick->VAL = 0; // 计数器清零

SysTick->CTRL = 0x00000007; // 使能计数器、使能中断、选择HCLK时钟

}

// 中断服务函数

void SysTick_Handler(void){

static uint32_t tick = 0;

tick++;

if(tick % 100 == 0) // 100ms

HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_0); // 每100ms翻转LED

}

基于 SysTick 的延时函数:

void Delay_ms(uint32_t ms){

uint32_t start = SysTick->VAL;

while((start - SysTick->VAL) < ms * 72000); // 72MHz/1000=72000

}

中断总结:

中断是 STM32 实现实时性的关键机制

掌握 NVIC 配置和中断服务函数编写是进阶必备

建议练习:按键中断控制 LED、定时器中断实现精确计时、多中断优先级嵌套实验

相关推荐
hsjiasb10 小时前
FreeRTOS学习(二十六)——动态内存管理heap_1到heap_5
stm32·单片机·学习·学习笔记·freertos
LCG元11 小时前
STM32+ESP8266+MQTT 物联网气象站:从零搭建温湿度远程监测系统(附完整源码)
stm32·物联网·struts
FakeOccupational12 小时前
【电路笔记 STM32】Cortex-M7 内核上的数据缓存(D-Cache)结构+MPU+DMA&Cache+STM32CubeMX配置
笔记·stm32·缓存
殷忆枫13 小时前
基于K210与STM32的智能垃圾分类与物联网监管系统
stm32·物联网·分类
周洲083014 小时前
STM32 GPIO 外部中断深度解析:边沿触发 / 电平触发、NVIC 优先级配置、中断嵌套实战
stm32·单片机·嵌入式硬件
LCG元14 小时前
STM32F103 CAN 总线通信实战:标准库双机通信与过滤器配置精讲
stm32·单片机·嵌入式硬件
zlinear数据采集卡15 小时前
D223的PWM电机控制:6路独立脉冲+加减速算法深度解析
arm开发·stm32·嵌入式硬件·算法·fpga开发·架构
Kuakewei88816 小时前
平芯微42V热拔插OVP过压保护芯片:PW1600
嵌入式硬件
ACP广源盛1392462567316 小时前
WAIC2026 国产超节点算力浪潮下@ACP#IX9104 在算力矩阵中的定位与落地场景
大数据·数据库·人工智能·嵌入式硬件·线性代数·矩阵
z203483152016 小时前
STM32单片机控制无源蜂鸣器播放《晴天》
stm32·单片机·嵌入式硬件