【芯片】Systick

时间

单位名称 标准符号 常见简写 与秒(s)的换算关系 相邻单位间的换算关系
s 1 s = 1 s(基本单位) 1 s = 10³ ms(1 秒 = 1000 毫秒)
毫秒 ms 1 ms = 10⁻³ s = 0.001 s 1 ms = 10³ μs(1 毫秒 = 1000 微秒)
微秒 μs us 1 μs = 10⁻⁶ s = 0.000001 s 1 μs = 10³ ns(1 微秒 = 1000 纳秒)
纳秒 ns 1 ns = 10⁻⁹ s = 0.000000001 s 1 ns = 10⁻³ μs(1 纳秒 = 0.001 微秒)

SysTick:系统滴答定时器

SysTick 本身是相对计数器,要让它精准映射现实时间,需解决时钟源精度误差补偿问题

1、选择稳定的时钟源(核心前提)

  • 内部 RC 振荡器:成本低、无需外部元件,但精度差(漂移可达 1%~5%),导致 SysTick 的计数周期与现实时间偏差较大(如 100MHz RC 时钟实际可能只有 99MHz,1ms 定时会变成 1.01ms)。
  • 外部晶振(XTAL):精度高(漂移通常 < 10ppm,即百万分之十),是工业 / 汽车电子中 SysTick 映射现实时间的首选。

2. 精准计算重载值(RELOAD)

根据时钟源频率和目标现实时间,严格按照公式计算重载值,避免整数截断误差。

例如:若 HCLK=48MHz,要实现500μs定时:

  • 单个计数周期:1/48MHz ≈ 20.8333ns
  • 所需计数次数:500μs / 20.8333ns = 24000
  • 重载值配置:RELOAD = 23999(无截断误差,精准匹配)

问题1、SysTick 有哪些典型应用?

  1. 操作系统任务调度:为 RTOS(如 FreeRTOS、uCOS)提供系统节拍(tick),实现任务时间片轮转和延时管理
  2. 精确延时函数:实现 ms/us 级阻塞或非阻塞延时(如 HAL_Delay ())
  3. 系统运行时间统计:记录系统启动以来的 tick 数,用于性能分析和日志时间戳
  4. 软件定时器:基于 SysTick 中断实现多个定时任务管理

问题2、RTOS 为什么选择 SysTick 作为系统时钟?

  • 可移植性:所有 Cortex-M 内核都集成 SysTick,无需额外配置
  • 低功耗:内核自带,不占用额外外设资源
  • 统一接口:提供标准的 tick 中断,简化 RTOS 移植
  • 系统级支持:与 NVIC 紧密集成,支持任务上下文切
全部评论
牛呀,学到了!!!
点赞 回复 分享
发布于 昨天 11:18 广东

相关推荐

避免使用“参与”、“负责”等模糊词汇。精确描述你的行动带来的可衡量效果。例如:性能优化:将“优化系统性能”改为“通过算法重构与指令集优化,将核心图像处理函数的执行时间减少22%,并降低15%的CPU占用率”。资源优化:将“减少内存使用”改为“通过优化数据结构和应用内存池技术,在资源受限的STM32F103平台上将RAM静态占用降低8KB,为产品新功能预留空间”。功耗优化:将“降低设备功耗”改为“利用低功耗模式与软件调度策略,使设备在电池供电下的待机时长由3天延长至7天”。聚焦技术,贴合岗位根据目标岗位的需求,重点突出相关的核心技术能力和算法经验。关键技术:明确提及如“精通C/C++,具备在RT-Thread/FreeRTOS上进行任务调度、内存管理及功耗优化的实战经验”。对于驱动开发岗位,可强调“具备基于Linux&nbsp;Kernel的字符设备驱动开发调试能力”。算法应用:举例说明,如“在项目中应用PID控制算法和卡尔曼滤波算法,有效提升传感器数据融合的精度与系统控制稳定性”。精炼表述,删除冗余果断删除“熟练使用Office办公软件”等与嵌入式核心技术关联不大的通用技能。确保每一句话都旨在展示你的专业核心竞争力,让HR在短时间内迅速抓住重点。清晰界定职责与时长在描述实习或项目经历时,明确标注时间段,例如“2025.06&nbsp;-&nbsp;2025.09”。用简练的语言清晰说明你的个人职责和贡献,例如“独立负责基于I2C协议的传感器数据采集模块开发与调试”。
实习简历求拷打
点赞 评论 收藏
分享
评论
1
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务