一、SysTick 是什么?先建立直觉SysTick 全称System Tick Timer,系统滴答定时器。它是 ARM Cortex-M 内核内置的一个 24 位递减计数器,不属于 STM32 的片上外设,而是 Cortex-M3 内核自带的, 所以所有 Cortex-M 系列(M0/M3/M4/M7)都有它,代码可移植。为什么需要 SysTick?方案1:用普通 for 循环延时 void delay(uint32_t n) { for (volatile uint32_t i = 0; i n; i++); } 问题: ① n 的值和实际时间没有直接关系(依赖编译器优化级别和 CPU 频率) ② 换一块不同主频的板子,延时时间完全不同 ③ 无法获取精确的毫秒/微秒时间戳 方案2:用 TIM1/TIM2 等通用定时器延时 问题: ① 占用了一个宝贵的定时器资源 ② 其他外设可能也需要这些定时器 方案3:用 SysTick(推荐) 优点: ① 专用计数器,不占用任何通用定时器 ② 精度高,直接基于 CPU 时钟 ③ 产生精确的 1ms 心跳,为整个系统提供时间基准 ④ 所有 RTOS(FreeRTOS/RTX)也用它作系统节拍二、SysTick 内部结构SysTick 是一个24 位递减计数器,有 4 个寄存器:┌─────────────
SysTick 系统滴答 + 延时函数体系完全笔记,使用STM32 标准库实现
一、SysTick 是什么?先建立直觉SysTick 全称System Tick Timer,系统滴答定时器。它是 ARM Cortex-M 内核内置的一个 24 位递减计数器,不属于 STM32 的片上外设,而是 Cortex-M3 内核自带的, 所以所有 Cortex-M 系列(M0/M3/M4/M7)都有它,代码可移植。为什么需要 SysTick?方案1:用普通 for 循环延时 void delay(uint32_t n) { for (volatile uint32_t i = 0; i n; i++); } 问题: ① n 的值和实际时间没有直接关系(依赖编译器优化级别和 CPU 频率) ② 换一块不同主频的板子,延时时间完全不同 ③ 无法获取精确的毫秒/微秒时间戳 方案2:用 TIM1/TIM2 等通用定时器延时 问题: ① 占用了一个宝贵的定时器资源 ② 其他外设可能也需要这些定时器 方案3:用 SysTick(推荐) 优点: ① 专用计数器,不占用任何通用定时器 ② 精度高,直接基于 CPU 时钟 ③ 产生精确的 1ms 心跳,为整个系统提供时间基准 ④ 所有 RTOS(FreeRTOS/RTX)也用它作系统节拍二、SysTick 内部结构SysTick 是一个24 位递减计数器,有 4 个寄存器:┌─────────────
相关文章
写手使用AI生成短篇小说该选什么写作软件?
当前市面上AI写作软件众多,但普遍存在模型单一、创作质量不稳定、长文逻辑断裂、AI痕迹浓重等问题。写手选择时,需关注软件能否解决这些痛点,提升写作效率与质量。aiset就是一款可作为参考的软件。多模型聚合,突破单一局限aiset是…
安卓开发 -- 实现累计当天计时(实例:实现记录当日累计运动时间)
图解分析代码 onCreate 里面调用这个方法private void loadData() {// 加载已经运动分钟// 判断有没有跨天String todayDateStr DateUtils.getTodayDateStr();String recentUseSportTimeDate MMKVUtils.decodeRecentUseSportTimeDate();totalSportMinutes 0;if (recentUseSp…
Arthas踩坑:SpringBoot可执行Jar无法动态修改日志级别(WebFlux网关)
一、场景背景 线上K8s集群部署了SpringCloud Gateway(WebFlux响应式网关),项目打包为SpringBoot可执行Jar包。 排查路由转发异常问题时,需要临时把业务包日志级别从INFO调整为DEBUG。使用Arthas动态调整日志级别时,接连…
洛阳汽车贴膜店怎么选?实测3家店告诉你答案
“老板,你这膜贴完夏天真能降温吗?”“网上团购的几百块全车膜,能用得住吗?”上个月我表弟刚买了辆新车,就在洛阳贴膜这件事上犯了难。他问遍了身边的朋友,得到的答案几乎是两个极端:有人说“随…
RoboScience发布通用具身大模型,重构机器人认知逻辑,成本降至传统1/200!
【导语:6月24日,通用具身智能企业RoboScience机器科学发布通用具身大模型,披露自研Visics大模型的技术架构VLOA,并展示其在多项真实场景的应用。该模型解决了具身智能领域的诸多难题,有望推动具身智能规模化落地。】具…
工程化工具链
工程化工具链:现代开发的效率引擎 在快节奏的软件开发领域,工程化工具链已成为团队提升效率、保障质量的核心支柱。从代码编写到自动化部署,工具链通过标准化流程和智能化协作,帮助开发者摆脱重复劳动,专注于创新。无…
Spring Boot + MyBatis 多模块项目中,如何优雅完成一个增量需求
摘要 在老系统中做需求,最怕的不是写代码,而是不清楚应该改哪里、复用哪里、绕开哪里。本文结合一个续期管理后台中的“规则中心配置页”需求,聊聊在 Spring Boot MyBatis 多模块项目里,如何用较小改动完成一次稳定的增量开发。 …
基于51单片机的智能香薰灯:从PID温控到WS2812B灯效的嵌入式开发实践
1. 项目概述:当传统香薰遇上智能芯香薰灯,这个听起来有点“古典”的家居小物,现在几乎家家户户都有。但你想过没有,市面上大多数香薰灯,功能都挺单一的:要么只能加热,要么只能亮灯,温…
入行转行AI赛道5个认证岗位四维详解
今年是AI商业化元年,各种媒体宣传及上游发力,导致人工智能领域人才需求井喷,很多大学生以及职场人士都开始关注这个领域的人才发展,下面分别从学习内容、入门基础、就业方向、社会需求四个维度拆解工信部教考中心五个AI认证方向&a…
Qwen2.5-Turbo百万上下文实战指南:百炼平台长文本处理全解析
1. 项目概述:这不是一次普通模型更新,而是一次上下文能力的质变跃迁“Qwen2.5-Turbo上线阿里云百炼平台,模型上下文长度扩展至百万tokens”——这句话里藏着三个关键信号:Turbo不是简单提速,而是面向生产环境的工程化重…
Kotlin的@JvmStatic与@JvmField:与Java互操作的注解
Kotlin作为一门现代编程语言,与Java的互操作性一直是其核心优势之一。为了让Kotlin代码能够无缝对接Java,Kotlin提供了多种注解来优化互操作体验,其中JvmStatic和JvmField是两个关键注解。它们分别用于解决静态成员和字段在Java中的访问问题&…
AI 驱动下 GEO 与 SEO 融合实战指南
摘要:本文深入探讨了从传统SEO到生成式搜索(GEO)的范式转移,为技术内容创作者揭示了新搜索生态下的挑战与机遇。面对大模型直接生成答案的趋势,单纯的关键词排名已不足以保证流量。文章系统性地提出了三大核心策略&…
Google AI Studio 300美元额度的真相与实战指南
1. 这300美金不是“送钱”,而是Google埋下的第一道技术门槛 你看到标题里那个醒目的“$300美金”时,第一反应可能是:又一个免费额度?领完就完事?我亲手试过——这300美金根本不是红包,而是一张入场券&…
PDF对比终极指南:用diff-pdf轻松识别文档差异的完整教程
PDF对比终极指南:用diff-pdf轻松识别文档差异的完整教程 【免费下载链接】diff-pdf A simple tool for visually comparing two PDF files 项目地址: https://gitcode.com/gh_mirrors/di/diff-pdf 还在为PDF文档的版本对比而烦恼吗?diff-pdf这款开…
嵌入式GUI控件实战:ROTARY、SCROLLBAR、SLIDER原理与应用
1. 嵌入式GUI控件:从原理到实战的深度解析在嵌入式系统开发中,图形用户界面(GUI)的设计与实现往往是项目从“能用”到“好用”的关键一跃。不同于资源充沛的PC或移动平台,嵌入式设备的GUI需要在有限的CPU性能、内存空间…
Zotero Duplicates Merger:5步彻底清理文献库重复条目
Zotero Duplicates Merger:5步彻底清理文献库重复条目 【免费下载链接】ZoteroDuplicatesMerger A zotero plugin to automatically merge duplicate items 项目地址: https://gitcode.com/gh_mirrors/zo/ZoteroDuplicatesMerger 还在为文献库中堆积如山的重…
利用随机有限集理论对蜂群的ILQR和MPC控制研究附Matlab代码
✅作者简介:热爱科研的Matlab仿真开发者,擅长数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室🍊个人信条:格物致知,完整Matlab代码及仿真咨询…
为什么你的Gemini邮件CTE低于行业均值2.8倍?:从Prompt架构到发送时序的深度归因
更多请点击: https://intelliparadigm.com 第一章:为什么你的Gemini邮件CTE低于行业均值2.8倍?:从Prompt架构到发送时序的深度归因 Gemini邮件的客户转化效率(CTE)显著偏低,根本原因常被误判为…