时钟概念引入
引言你有没有想过你的 ARM-CPU 能从 Flash 上读取代码并执行可是是谁让 ARM-CPU 读取指令的你的 ARM-CPU 能一直从 Flash 上读取代码并执行可是是谁一直让 ARM-CPU 读取指令的事实上任何计算机系统包括单片机CPU 也要被驱动。CPU 很聪明可以读取指令分析指令执行指令周而复始CPU 也很傻它必须在别人的催促下才能完成上面的工作这里 “催促” CPU 运行的硬件机制叫做时钟什么是时钟时钟类似一个 节拍器以固定的频率给设备发送电信号催促目标设备进行工作CPU 不会主动执行需要在时钟这个外力的驱使下才能进行工作认识时钟源如图图中上面的心脏部分就是时钟源它不断产生高低电平驱动CPU和外设工作功耗原因但是并不是所有的外设都需要同时工作的所以时钟源驱动外设时还需要通过一个开关我们可以通过这个开关来控制外设的工作与否。CPU是不用使能的因为CPU需要一直工作。倍频与分频但是每个外设工作的频率是不一样的而时钟源就只有一个所以就有了倍频器与分频器来控制外设上的时钟频率。下图为不同外设的工作频率倍频与分频示例时钟源与振荡器振荡器是产生原始周期性电信号的硬件时钟源是系统里提供时钟信号的来源振荡器是最核心、最常见的一类时钟源如下图是MCU外部的时钟源由无源谐振振荡器构成。无源谐振振荡器内外时钟源事实上时钟源不止一个一般分为内部时钟源由MCU自己提供相当于一个缺省的时钟源外部时钟源由硬件工程师提供MCU中有外部晶振的接口上面的四个时钟源的详细信息如下表HSE和LSE是MCU外部的时钟源是需要硬件工程师自己提供晶振的。那为什么意法半导体官方的参考手册会把它画到MCU的内部呢其实这也算不上一种错误前面我们学过晶振就知道无源晶振是需要外部配合的MCU内部也有一部分关于该时钟源的电路意法半导体把这个系统视为了一个整体故把它画在MCU里面倍频和分频的配置选择时钟源时钟源使能外设的开关其实就是与门我们目前只关心第一部分即可时钟树简化图不同视角的时钟源软硬工程师的不同视角从总线架构看时钟源关于CSS了解即可CSS 的全称Clock Security System时钟安全系统它由如下特性⭐ HSE 故障 → 自动切到 HSI STM32F103 的时钟安全系统CSS一旦检测到 HSE 失效无论 HSE 是直接做 SYSCLK 还是经 PLL硬件会立即关闭 HSE 及 PLL把 SYSCLK 强制切换到 HSI8 MHz这个过程完全由硬件完成软件来不及干预但会产生 NMI 中断供后续补救HSI 故障 → 不自动切到 HSEHSI 是内部 RC 振荡器规格书里不存在 “HSI 失效检测” 与 “自动切到 HSE ” 的机制。如果 HSI 因意外停振系统只能死机或复位。因此只有 HSE 故障时 MCU 才会自动降级到 HSI若想反向保护需要软件自己写监控逻辑。在STM32CubeMX中是类似的总线结构和时钟树打通理解如下图意法半导体并没有公开说明是什么样的这也只是一种理解时钟如何统一调度CPU和外设工作存一个比特位的寄存器A端接高低电平是使能端八位MCU如何从外设中读取信息如何对外设的寄存器进行写操作利用时钟信号来作为开关的控制信号控制寄存器

相关新闻

Qt 5.15.0在线安装全攻略:账号、Archive与镜像源实操

Qt 5.15.0在线安装全攻略:账号、Archive与镜像源实操

简介:QT 5.15.0 自发布后改为在线安装方式,不少开发者因官方下载缓慢、安装程序中途崩溃而受阻。这份原创 PDF 针对该痛点,完整记录了以 Fiddler 4 代理配合清华、北外、华中等国内镜像的实测方案,并重点解决了数据量过大导致安装…

2026/10/9 12:10:18 阅读更多 →
Strix Halo 跑 SGLang 实战:用 TaoToken 统一 Key 让端侧 AI 稳定输出标准 JSON

Strix Halo 跑 SGLang 实战:用 TaoToken 统一 Key 让端侧 AI 稳定输出标准 JSON

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 12:09:17 阅读更多 →
OpenBMC:Web 页面功能异常排查

OpenBMC:Web 页面功能异常排查

OpenBMC:Web 页面功能异常排查 1. 从失败请求入手 WebUI 的基本交互链路为: 浏览器 → HTTPS → bmcweb → D-Bus → 后台服务打开浏览器开发者工具,重点检查: Network:请求地址、方法、状态码和响应体Console&#xf…

2026/10/9 12:09:17 阅读更多 →

最新新闻

Pygame飞机大战开发全攻略:主循环、碰撞检测与避坑实战

Pygame飞机大战开发全攻略:主循环、碰撞检测与避坑实战

简介:面向希望用Pygame制作2D游戏的Python初学者与编程爱好者,以经典「飞机大战」为完整案例,系统梳理Pygame开发的核心知识点,包括窗口初始化、键盘事件监听、精灵类设计、sprite分组与碰撞检测、游戏循环、音效播放与帧动画切换…

2026/10/9 12:46:14 阅读更多 →
MySQL外键约束与CHECK约束:原理、策略与日常维护

MySQL外键约束与CHECK约束:原理、策略与日常维护

上篇把主键、非空、默认值、唯一约束这四类“单表内部”的基础约束都聊透了,这篇往下接着讲表的约束里最容易让人翻车的两个大头:外键约束和检查约束(CHECK),再加上“约束已经建好了,后面怎么改、怎么删、怎…

2026/10/9 12:46:13 阅读更多 →
MySQL密码安全存储:加盐哈希、PBKDF2与登录查询的正确实践

MySQL密码安全存储:加盐哈希、PBKDF2与登录查询的正确实践

我上次接手的一个老项目做安全改造,security scan报告里第一行就写着“用户表存在明文密码存储”,登录代码长得跟刚学SQL时写的作业一样:SELECT * FROM user WHERE username$name AND password$pass。这种场景这些年见过太多次了——MySQL里密…

2026/10/9 12:46:13 阅读更多 →
用Python分析Spotify播放记录:从数据清洗到可视化全复盘

用Python分析Spotify播放记录:从数据清洗到可视化全复盘

大概是从三年前开始重度使用Spotify,今年初我闲着没事翻了翻后台的导出数据,发现里面躺着两万多次播放记录。当时脑子里冒出来一堆问题:我到底花在音乐上的时间有多少?每天深夜那一个小时在听什么?我的“本命歌手”是真…

2026/10/9 12:46:13 阅读更多 →
纯Python从零搭建个人博客系统:架构、模板与部署实战

纯Python从零搭建个人博客系统:架构、模板与部署实战

抱歉,这个项目标题涉及历史政治类敏感话题,属于安全规范中必须回避的内容范围,我无法基于它生成博文。 如果你有其他技术、职场、生活、手工、创意等领域的项目标题,比如“用纯Python从零搭建一个个人博客系统”“老小区厨卫改造…

2026/10/9 12:46:13 阅读更多 →
SpringBoot+MyBatis-Plus多数据源实战:从配置到踩坑

SpringBoot+MyBatis-Plus多数据源实战:从配置到踩坑

如果你跟我一样在业务增长比较快的团队里做后端,大概率早晚会遇到同一个SpringBoot项目连两个甚至多个数据库的需求。我最早碰多数据源是在订单和报表分库的时候,主库扛写入,报表库跑复杂查询,两边数据要在一个服务里同时访问。当…

2026/10/9 12:45:12 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →