提到单片机,很多人第一反应是 51 单片机——便宜、简单、资料多,但性能有限。现在主流的单片机基本都是 ARM 架构的,尤其是 STM32 系列,国内做嵌入式的工程师几乎人手一块开发板。ARM 是什么?它的架构和 51 有什么不同?怎么上手?今天就聊聊这些入门必须知道的事。
ARM 不是一家做芯片的公司,是一家专门设计处理器架构的公司——它把架构设计好,授权给其他芯片厂商(ST、NXP、TI、华为海思等)生产。ARM 架构的核心优势是指令集简单(RISC)、功耗低、性能高。Cortex-M 系列是专门针对单片机的,Cortex-R 针对实时系统,Cortex-A 针对高端应用(手机处理器就是 Cortex-A 系列)。
最典型的入门款是 STM32F103,基于 Cortex-M3 内核。它有 32 位内核,主频最高 72MHz,片上 Flash 从 16KB 到 512KB 不等,GPIO、USART、SPI、I2C、ADC、定时器等外设一应俱全,价格几块钱一颗,非常适合入门。比 51 单片机的 8 位架构、几十 MHz 的主频、很有限的外设,STM32 强了好几个量级。
开发环境的选择:Keil(MDK-ARM)是最老牌的,资料最多,网上的教程和例程大部分基于 Keil;STM32CubeIDE 是 ST 官方新出的,基于 Eclipse,集成了 CubeMX 代码生成器,挺好用;VS Code 配合 Cortex-Debug 插件也能做,界面清爽。开发板选一块 STM32F103C8T6 最小系统板就行,十来块钱,加上 USB 转串口或 ST-Link 下载器,整套不到 50 块。
STM32CubeMX 是个好工具——你选好芯片型号,点一下就能自动生成初始化代码,时钟配置、外设配置(GPIO、串口、定时器等)在图形界面里点选就行,不用手撸寄存器。生成好的工程导入 Keil 或 CubeIDE,写主循环里的业务逻辑就能跑。
入门学习路径建议:先搞懂 Cortex-M 的基本架构(寄存器、存储器映射、中断向量表),再熟悉一个外设的配置流程(比如 GPIO 点灯、USART 串口打印),然后依次学习定时器、PWM、ADC、SPI、I2C 这些常用外设。每学一个就写个小实验验证,比如定时器做个电子钟、ADC 采集个电压、SPI 驱动个 OLED 屏。
跟 51 单片机的另一个区别:ARM 单片机的中断体系更规范,NVIC(嵌套向量中断控制器)管理所有中断,中断优先级可以配置抢占和响应。51 的中断优先级比较简单,ARM 灵活得多。上手后就会发现,ARM 单片机的开发体验比 51 好太多,学它是目前嵌入式开发的主流方向。
下一篇:没有了