news 2026/8/8 7:34:15

嵌入式开发日记STM32F407为例——RCC

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
嵌入式开发日记STM32F407为例——RCC

1. RCC(时钟)

1.1 内部时钟和外部时钟概念

内部时钟是指有芯片内部RC振荡电路产生的,精度低,成本低。

外部时钟是指由外部晶振/陶瓷谐振器产生的,精度高,成本高。

1.2HSI、HSE、LSI、LSE概念

● HSI (High-Speed-Internal)振荡器时钟(高速内部时钟)

● HSE (High-Speed-External)振荡器时钟(高速外部时钟)

● LSI (Low-Speed-Internal)振荡器时钟(低速内部时钟)

● LSE (Low-Speed-External)振荡器时钟(低速外部时钟)

1.3MCU系统时钟配置

MCU复位后,默认系统时钟为HSI,若要切换时钟,则一般在系统复位后立即初始化新的时钟源。

先看STM32F407的时钟图:

(1)

  • LSE的输入时钟频率应该为32.768Khz
  • RTC可配置选择LSI或LSE作为时钟来源。
  • 独立看门狗的时钟来源只有LSI

(2)

  • MCO1时钟源输出

可输出HSI、LSE、HSE、PLLCLK,1~5分频,可用作测试系统时钟频率或者作为输出控制

  • MCO2时钟源输出

可输出SYSCLK、PLLI2SCLK、HSE、PLLCLK,1~5分频

(3)

  • HSE的输入时钟频率范围在4-26Mhz

(4)

  • STM32F4xx系列具有3个锁相环PLL,一个主锁相环PLL,两个专用锁相环PLLI2S和PLLSAI,三个锁相环共用一个输入时钟和PLLSRC位。
  • PLL由HSE和HSI提供时钟信号,输出两种时钟,一种是高速系统时钟,一种是USB OTG FS时钟、随机模拟发生器和SDIO时钟
  • PLLI2S和PLLSAI分别用于I2S和SAI1接口上,PLLSAI还能用于LCD-TFT。
  • 锁相环的各个参数:P、Q、N、M

PLLQ:USB OTG FS、SDIO和随机数生成器时钟的主PLL分频系数

PLLP:主系统时钟的分频系数

PLLM:PLL和PLLI2S输入时钟的分频系数

PLLN:压控振荡器的分频系数

计算公式:

例如m=8,n=336,p=2,q=4,选择HSE(8Mhz)作为PLL的输入。

SYSCLK=168MHz

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

基于Django的智能教育系统开发实践

1. 项目背景与核心需求在当今教育信息化浪潮中,自主学习系统已成为突破传统教学模式的重要工具。基于Django框架的Python开发方案,因其快速开发特性和完善的ORM系统,成为构建教育类Web应用的首选技术栈。这个项目要实现的不仅是一个简单的在线…

作者头像 李华
网站建设 2026/8/8 7:33:37

嵌入式电源管理实战:从LDO/DCDC选型到PCB布局的工程避坑指南

1. 从“能用”到“好用”:电源管理组件的价值再认识在嵌入式开发和硬件系统设计里,电源管理组件(Power Management Unit, PMU)常常被看作一个“后勤部门”。很多工程师,尤其是刚入行的朋友,会觉得它无非就是…

作者头像 李华
网站建设 2026/8/8 7:33:08

深入解析AQS:Java并发编程核心框架原理与应用实践

1. 项目概述:为什么AQS是Java并发编程的“定海神针”?如果你写过Java并发程序,用过ReentrantLock、Semaphore或者CountDownLatch,那你其实已经在和AQS打交道了。AQS,全称AbstractQueuedSynchronizer,是Java…

作者头像 李华
网站建设 2026/8/8 7:31:26

散货港口智能优化系统:物联网与群智能算法的融合应用

1. 项目背景与核心价值散货港口作为全球物流体系的关键节点,每天需要处理数以万吨计的煤炭、矿石、谷物等大宗商品。传统港口运营中常面临三大痛点:设备状态不可见导致的突发故障、作业流程低效造成的船舶压港、能源消耗过高带来的运营成本压力。我们团队…

作者头像 李华
网站建设 2026/8/8 7:31:17

CMake实战指南:从零构建跨平台C/C++工程

1. 项目概述:为什么CMake是Linux下C/C工程的“标准答案”?如果你在Linux环境下写过C或C项目,尤其是稍微复杂一点、需要链接多个库或者跨平台的项目,大概率已经和Makefile打过交道。手动编写Makefile,定义编译器、链接器…

作者头像 李华
网站建设 2026/8/8 7:29:21

嵌入式系统调试利器:SystemView实时可视化分析与实战指南

1. 项目概述:为什么你需要一个“嵌入式系统的示波器”?如果你是一名嵌入式软件工程师,或者正在学习RTOS(实时操作系统),那么你一定遇到过这样的场景:程序运行起来,逻辑都对&#xff…

作者头像 李华