news 2026/6/10 19:27:52

STM32HAL库开发笔记-系统定时器与中断闪灯

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
STM32HAL库开发笔记-系统定时器与中断闪灯

目录

一、SysTick:内核自带的 “通用小闹钟”

二、中断:MCU 应对紧急事件的 “快速响应机制”

三、中断嵌套:高优先级事件的 “优先处理权”

四、定时器控制LED精准闪烁


一、SysTick:内核自带的 “通用小闹钟”

SysTick 也就是系统定时器,它并不是 STM32 的外设,而是所有 Cortex-M 系列内核都自带的 24 位递减计数器,相当于给内核配了个不用额外占用硬件资源的 “小闹钟”。它的核心工作方式是从重载值开始向下计数,计数到 0 时会自动重新加载预设值,还能根据需要触发中断;时钟源也有两种选择,既可以用内核时钟(比如 STM32F1 的 72MHz),也可以用内核时钟的 1/8(比如 9MHz),灵活度很高。

在实际开发中,SysTick 的用处特别实用:HAL 库里常用的HAL_Delay()延时函数,就是靠它实现的;我们也能用它做系统的时间基准,比如每隔 1ms 记录一次系统运行时间;更重要的是,它还是 FreeRTOS 等实时操作系统的核心时钟节拍,负责任务的调度和时间片分配。因为它直接由内核控制,不用占用 TIM2、TIM3 这类外设定时器,所以成了实现延时和系统时间基准的首选。


二、中断:MCU 应对紧急事件的 “快速响应机制”

简单来说,中断就是 MCU 的 “应急处理流程”——CPU 原本按部就班执行主程序,当有更紧急的事件发生时,它会暂停当前的工作,先处理这个紧急事件,等处理完再回到原来的程序继续执行。这种机制彻底避免了 CPU “傻等” 的情况,比如不用一直循环检测按键是否按下,大大提高了 CPU 的利用率,也保证了串口接收数据、外部按键触发这类紧急事件能被及时处理。

STM32 的中断源有很多种,既有串口收发完成、定时器溢出、ADC 转换完成、GPIO 电平变化这类外设中断,也有 SysTick 中断、硬故障中断这类内核中断。当某个中断源触发事件后,CPU 会先检查这个中断是否被使能、优先级是否有效,确认后就会保存当前的程序状态(也就是 “保护现场”),然后从中断向量表中找到对应的中断服务函数执行处理逻辑,处理完再恢复之前的程序状态(“恢复现场”),回到主程序继续运行。比如EXTI0_IRQHandler()就是 GPIO 口 0 的外部中断服务函数,这些函数名都是芯片厂商预先定义好的,我们只需要在函数里写具体的处理逻辑就行。


三、中断嵌套:高优先级事件的 “优先处理权”

中断嵌套是在中断基础上的进阶机制,本质就是高优先级的中断能打断低优先级中断的执行,这也是 STM32 实现高实时性的关键。不过它的发生有前提:首先要在 NVIC(嵌套向量中断控制器)中配置中断优先级分组,把中断优先级分成抢占优先级和响应优先级 —— 抢占优先级决定了能否打断其他中断,响应优先级则是在抢占优先级相同时,决定哪个中断先执行;而且 STM32 里优先级数值越小,优先级越高,比如抢占优先级 0 就比抢占优先级 1 高。

举个实际的例子,假如 CPU 正在执行抢占优先级 1 的定时器 2 中断处理逻辑,这时候抢占优先级 0 的串口 1 接收中断触发了,CPU 会立刻暂停定时器 2 中断的执行,保存好它的现场,先去执行串口 1 中断的服务函数,等串口 1 中断处理完,再恢复定时器 2 中断的现场,继续执行剩下的代码,最后才返回主程序。

不过要注意,只有高抢占优先级的中断才能嵌套低优先级的,要是两个中断的抢占优先级相同,就不会发生嵌套,得等前一个中断执行完再处理后一个。另外,也不能让中断嵌套过深,否则会占用过多的 CPU 栈空间,容易导致栈溢出让程序跑飞,所以实际开发中一定要合理规划各个中断的优先级。


四、定时器控制LED精准闪烁

配置时钟树:

配置LED引脚:

查看自动配置的代码:

中断服务函数:

LED500ms反转一次代码:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 21:24:15

Linly-Talker三星C-Lab技术创新合作意向书签署

Linly-Talker与三星C-Lab达成创新合作:全栈数字人技术如何重塑交互边界 在虚拟主播24小时不间断带货、银行客服无需休息也能回答千奇百怪问题的今天,数字人早已不是科幻电影里的遥远设想。它们正以越来越自然的姿态,融入我们的工作与生活。而…

作者头像 李华
网站建设 2026/6/10 15:37:23

数字人制作太难?Linly-Talker一站式解决方案来了

数字人制作太难?Linly-Talker一站式解决方案来了 在电商直播间里,一位“主播”正声情并茂地讲解产品,唇形与语音精准同步;在企业客服界面中,一个虚拟员工用温和的语气回答用户提问,语气自然、表情生动——这…

作者头像 李华
网站建设 2026/6/10 12:01:24

Linly-Talker专利申请进展:已受理三项核心技术发明专利

Linly-Talker专利进展:三项核心发明背后的数字人技术革新 在虚拟主播24小时不间断直播、AI客服秒回用户咨询、企业用“数字员工”接待客户的今天,我们正快速步入一个人机深度交互的新时代。支撑这一切的,不再只是简单的语音播报或预设动画&am…

作者头像 李华
网站建设 2026/6/10 14:42:13

Linly-Talker版本迭代节奏公布:每月发布新特性

Linly-Talker:让每个人都能拥有自己的数字分身 在虚拟主播24小时不间断带货、AI客服秒回千条咨询的今天,数字人早已不再是科幻电影里的概念。但真正能“说会道”、表情自然、还能实时对话的数字人系统,往往依赖庞大的工程团队和昂贵的技术栈—…

作者头像 李华
网站建设 2026/6/10 10:20:05

Linly-Talker CI/CD自动化测试实践

Linly-Talker CI/CD自动化测试实践 在虚拟主播、智能客服和数字员工日益普及的今天,用户对交互体验的要求早已不再满足于“能说话”或“有画面”。他们期待的是自然流畅的对话节奏、精准同步的口型动作,以及富有情感表达的声音与表情。然而,…

作者头像 李华
网站建设 2026/6/10 12:23:21

Linly-Talker与剪映等剪辑软件兼容性测试

Linly-Talker与剪映等剪辑软件兼容性深度实测 在短视频内容爆炸式增长的今天,高效、低成本地生产高质量数字人视频已成为个人创作者和企业团队的核心诉求。传统数字人制作依赖动捕设备、专业动画师和复杂的后期流程,不仅成本高昂,且周期漫长。…

作者头像 李华