stm32 F1 :
arm m3架构 RAM : 20K (SRAM) ROM : 64K (Flash) 主频:72MHz
stm32:
上电后 外设是没有时钟的 使用外设前必须先使能时钟
时钟频率:指驱动 MCU 内部电路同步工作的基准时钟信号的振荡频率,单位通常是 Hz(赫兹)
一个 72MHz 的 MCU 时钟,意味着每秒产生 7200 万次 时钟周期。 1Hz = 每秒1个周期
一条简单指令(如寄存器赋值)可能需要 1~2 个时钟周期 完成,复杂指令(如乘法、除法)可能需要更多周期
MCU有一套时钟树 clock tree 不同模块用不同频率的时钟
MCU 的主时钟通常来自外部晶振 8MHz、16MHz, 或内部rc振荡器
主时钟通过 PLL 倍频、分频器分频后,分配给不同模块 CPU 核心时钟 AHBAPB 外设专用时钟
时钟源
├── HSI(内部高速RC,16MHz)
├── HSE(外部晶振,8MHz)
└── PLL(锁相环,可倍频至200MHz)
│
**SYSCLK(系统时钟 / 主时钟)**
│
┌───────┴────────┐
AHB 总线 APB1/APB2 总线
(CPU, RAM) (UART, SPI, Timer...)
定时器:集成在MCU芯片内,但独立于CPU核心,接收来自主频(或经过分频后的)时钟脉冲,然后对这些脉冲进行计数。
设置预分频器:告诉定时器"每收到N个主频脉冲,你才计1个数"。这样降到一个适合计时的速度。
设置重装载值:告诉定时器"请你从0开始数,数到M就告诉我一声(产生中断或事件)"。这个"M"就是你要定时的时间长度。
捕获外部信号:测量脉冲宽度。
输出PWM波形:驱动电机、控制LED亮度。
MCU架构:内核(Core):负责执行代码、运算。 小容量 RAM/ROM
外设(Peripheral):围绕内核,提供特定功能的模块。如:
通信外设:UART, SPI, I2C
模拟外设:ADC, DAC
定时/计数外设:Timer, RTC(时间记录, Watchdog
控制外设:GPIO, PWM
外设介绍:

命名规则:
系统结构:

48个引脚:



RTC详细介绍:
你可以把它理解为单片机内部的一个独立的、自带电池的"手表"。它的核心作用是在系统断电或休眠时,依然能保持对真实时间(年、月、日、时、分、秒)的追踪, 它通常拥有独立的电源引脚(VBAT),可以连接一颗纽扣电池(如 CR2032)。
- 时钟源: 最常用的是外部的 32.768kHz 晶振。你可能会好奇为什么选这个数字?因为 32768=21532768=215 ,经过 15 次二分频后,刚好能得到精确的 1Hz(每秒一次)脉冲信号,非常适合用来计时。
- 计数器: RTC 内部有一个 32 位的计数器。如果以 1970 年 1 月 1 日为起点(Unix 时间戳),它可以连续计时约 136 年,完全够用。
- 分频器: 将高频的时钟源分频为 1Hz 的秒信号
最小系统电路:
