
-
ARM 内核 (ARM Core)
- 是什么?:这是微控制器的 "大脑"。它是执行程序指令(如加法、减法、逻辑判断、函数调用等)的核心单元。
- 作用:从内存(FLASH 和 SRAM)中读取指令和数据,进行运算和逻辑处理,然后将结果写回内存或通过外设(如 I/O、ADC)与外部世界交互。
- 常见例子:Cortex-M0, Cortex-M3, Cortex-M4, Cortex-M7, Cortex-M33 等。不同的内核代表了不同的性能级别和功能特性。
-
FLASH (闪存)
- 是什么?:这是微控制器的 "硬盘" 或 "ROM"。它是一种非易失性存储器,意味着即使断电,存储在里面的数据也不会丢失。
- 作用 :
- 存储程序代码:你的嵌入式应用程序(比如用 C 语言写的代码)编译后生成的机器码就存放在这里。
- 存储常量数据 :程序中定义的常量(
const变量)也通常存放在 FLASH 中。
- 特点:读取速度较快,但写入(编程)和擦除速度相对较慢,且有擦写寿命限制(通常是 1 万到 10 万次)。
-
SRAM (静态随机存取存储器)
- 是什么?:这是微控制器的 "内存" 或 "RAM"。它是一种易失性存储器,断电后数据会立即丢失。
- 作用 :
- 运行时数据存储:程序运行时,所有的变量(全局变量、局部变量、函数参数等)都在 SRAM 中创建和操作。
- 堆栈 (Stack):用于函数调用时保存返回地址和局部变量。
- 堆 (Heap) :用于动态内存分配(
malloc,new)。
- 特点:读写速度非常快,是程序运行时数据交换的核心区域。其大小是衡量 MCU 性能的一个重要指标。
-
RCC (Reset and Clock Control)
- 是什么?:这是微控制器的 "心脏起搏器" 和 "时钟调度中心"。
- 作用 :
- 复位控制:管理 MCU 的复位源(如上电复位、外部复位引脚、看门狗复位等),确保 MCU 能从一个已知的初始状态开始运行。
- 时钟控制:为整个 MCU 系统和各个外设(如 ADC, UART, SPI, I2C 等)提供稳定的时钟信号。时钟是 MCU 内部所有同步操作的节拍。
- 时钟配置:允许开发者配置系统时钟的来源(如内部高速 RC 振荡器、外部晶体振荡器)和频率,以在性能和功耗之间取得平衡。例如,STM32 可以配置为使用 8MHz 外部晶振,并通过内部 PLL 倍频到 72MHz 或更高。
-
ADC (Analog-to-Digital Converter)
- 是什么?:这是一个 "翻译官",负责将模拟信号转换为数字信号。
- 作用:MCU 本身是数字电路,只能处理 0 和 1 组成的数字信号。但现实世界中的许多信号是连续变化的模拟信号(如温度、湿度、光照强度、声音、电压等)。ADC 的作用就是定期 "采样" 这些模拟信号,并将其转换为 MCU 可以理解和处理的数字值。
- 关键参数 :
- 分辨率:例如 12 位 ADC,可以将模拟信号量化为 2^12 = 4096 个不同的数字值(0 到 4095)。分辨率越高,测量越精确。
- 转换速度:完成一次从模拟到数字转换所需的时间。
- 输入通道:ADC 可以有多个输入通道,通过多路选择器切换,实现对多个模拟信号的轮流测量。
-
I/O (Input/Output)
- 是什么? :这是 MCU 与外部世界进行 "沟通" 的 "嘴巴" 和 "耳朵",通常以GPIO (General Purpose Input/Output) 的形式存在。
- 作用 :
- 输出 (Output):MCU 可以通过设置某个 I/O 引脚的电平(高电平 VCC 或低电平 GND)来控制外部设备,例如点亮 LED、驱动继电器、控制电机的转速和方向等。
- 输入 (Input):MCU 可以通过读取某个 I/O 引脚的电平来检测外部信号,例如检测按键是否被按下、读取传感器的数字输出状态等。
- 特点:I/O 引脚通常是多功能的。除了作为通用的 GPIO,它们还可以被配置为特定外设的功能引脚(例如,UART 的 TX/RX,SPI 的 SCLK/MOSI/MISO,I2C 的 SDA/SCL 等)。这种复用功能极大地增强了 MCU 引脚的灵活性和功能性。