当前位置: 首页 > news >正文

STM32F103_LL库+寄存器学习笔记02 - 开启SysTick(滴答定时器)中断

导言


《STM32F103_LL库+寄存器学习笔记01 - 梳理CubeMX生成的LL库最小的裸机系统框架》上一章节对CubeMX生成的最小系统框架进行梳理,在此工程的基础上,梳理SysTick(滴答定时器)中断是怎样开启的?为什么SysTick中断会自动调用函数SysTick_Handler()

效果如下:
在这里插入图片描述
在代码stm32f1xx_it.c里的函数SysTick_Handler()在持续被调用,将全局变量gTickCount持续累加。

项目地址:https://github.com/q164129345/MCU_Develop/tree/main/stm32f103_ll_library02_SysTick_Interrupt

一、寄存器SysTick->CTRL


在这里插入图片描述
如上所示,将SysTick->CTRL的段TICKINT置1就可以开启SysTick中断。
在这里插入图片描述
在这里插入图片描述
如上所示,SysTick->CTRL的段CLKSOURCE置1选择AHB时钟,不会分频。 SysTick->CTRL的段ENABLE置1启动滴答定时器。

二、代码


2.1、main.c

在这里插入图片描述
如上所示,通过或运算,将寄存器CTRL的段TICKINT置1,启动SysTick中断。

2.2、stm32f1xx_it.c

在这里插入图片描述
在SysTick中断回调函数SysTick_Handler()里将全局变量gTickCount累加。

三、Debug调试


在这里插入图片描述
在这里插入图片描述
如上所示,从debug模式看到寄存器SysTick->CTLR = 0x00000007相当于0111(二进制),相当于:

  • CLKSOURCE = 1,SysTick的时钟源来自AHB
  • TICKINT = 1,打开中断
  • ENABLE = 1,启动倒数

四、细节补充


4.1、为什么SysTick中断时会自动调用SysTick_Handler()

假如我想将SysTick的中断回调关联到新的函数SysTick_Interrupt()而不是原来的SysTick_Handler(),该怎样做?
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如上四张图所示,改完后直接编译代码。
在这里插入图片描述
如上,编译成功。
在这里插入图片描述
如上所示,新的中断回调函数SysTick_Interrupt()被正常调用。
到此,只是说明怎样改变SysTick中断时,调用其他函数而已。但是,为什么能跟.s启动文件的中断向量表里的SysTick_Interrupt关联起来呢?
在这里插入图片描述
如上所示,中断向量表里的这个位置,就是对应SysTick中断回调的。 在 Cortex-M 的启动文件中,每一个中断/异常在向量表里都有一个固定“槽位”,而那个“DCD SysTick_Interrupt ; SysTick Handler”这一行就代表 SysTick 中断的入口地址。如果你将向量表中的 SysTick 条目写成 DCD SysTick_Interrupt,那么当 SysTick 中断发生时,CPU 就会跳转到名为 SysTick_Interrupt() 的函数入口执行。

换句话说,向量表中的那一行就是告诉 CPU:SysTick 中断对应的中断服务函数是哪个。

相关文章:

  • QinQ项展 VLAN 空间
  • 数据结构与算法:Dijkstra算法和分层图最短路
  • 技术赋能与创新实践:基于低代码平台的高性能应用开发
  • YoloV8训练和平精英人物检测模型
  • Vue动态绑定:文本框、单选按钮、下拉列表、多选按钮
  • Java运行时的堆、栈和方法区
  • 参考apollo3 FLASH样例改写实际应用的接口函数(带磨损均衡处理)
  • 导入 Excel 规则批量修改或删除 PDF 文档内容
  • 【网络】手机PUSH消息发送自建IM通道实现方案
  • 【Pandas】pandas Series to_csv
  • C++学习:六个月从基础到就业——C++基础语法回顾:指针与引用基础
  • 5款视觉OCR开源模型
  • WELL健康建筑认证是什么?
  • 2025年渗透测试面试题总结-某 长亭(题目+回答)
  • [M模拟] lc2711. 对角线上不同值的数量差(对角线遍历+前后缀分解)
  • Python条件处理,新手入门到精通
  • 【系统架构设计师】软件质量管理
  • 常见电子元器件介绍
  • Ollama Embedding模型运行与使用
  • Bluetooth Beacons的介绍和技术实现
  • 做网站模板的海报尺寸多少钱/电商运营数据六大指标
  • 怎么看出是模板网站/推广自己产品的文案
  • 高大上公司网站/百度官方客户端
  • 360建筑网在哪里/aso关键词优化工具
  • 山西本土网站建设/app推广地推接单网
  • wordpress模板排行榜/性能优化工具