STM32开发
开发工具
Keil
- 代码开发工具,会帮你打包代码
STM32CubeMX
- 自动生成模板的工具,能在可视化界面生成项目模板
MCU是什么?
微控制单元(Microcontroller Unit;MCU) ,又称单片微型计算机(Single Chip Microcomputer )或者单片机,是把中央处理器(Central Process Unit;CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、USB、A/D转换、UART、PLC、DMA等周边接口,甚至LCD驱动电路都整合在单一芯片上,形成芯片级的计算机,为不同的应用场合做不同组合控制。诸如手机、PC外围、遥控器,至汽车电子、工业上的步进马达、机器手臂的控制等,都可见到MCU的身影。
STM32是什么?
STM32是意法半导体公司推出的一系列32位微控制器(MCU),可以理解为一种功能强大、非常聪明的“芯片大脑”。它基于ARM Cortex-M内核设计,凭借其出色的性能、丰富的功能和极高的灵活性,成为了嵌入式系统开发领域的明星产品,广泛应用于工业控制、智能家居、消费电子等各个领域。
数据手册 vs 参考手册
官网下载MCU手册:www.stmcu.com.cn/Product/pro…
- 数据手册帮你选芯片(帮你看硬件参数和引脚),参考手册帮你用芯片(看内部编程和寄存器)
| 维度 | 数据手册(datasheet) | 参考手册(reference manual) |
|---|---|---|
| 英文名 | Datasheet | Reference Manual |
| 关注重点 | 硬件特性(电气参数、引脚定义、封装尺寸) | 软件/逻辑(寄存器、外设功能、内存映射) |
| 典型用途 | 画电路图(PCB)、选型、确定供电 | 写代码(固件开发)、配置外设、理解工作原理 |
| 厚度 | 通常几页到一百多页 | 通常上千页(例如STM32F103有1100+页) |
| 时效性 | 随芯片型号变化(如STM32F103C8T6) | 随系列变化(如整个F1系列公用一本) |
总结
画电路板 --> 数据手册 写代码 --> 参考手册
HAL 库
HAL库(Hardware Abstraction Layer Library,硬件抽象层库)是嵌入式开发中常见的一种软件库,主要用于屏蔽底层硬件的复杂性,为开发者提供统一、简介、可移植的API接口来操作微控制器(MCU)的各种外设(如GPIO、UART、I2C、SPI、定时器、ADC等)
选择HAL库的原因:
- 官方力推,大势所趋: ST公司已经停止对传统标准库(SPL)的更新,全力投入HAL库及其配套的STM32Cube生态系统。选择HAL库就是选择了未来
- 开发效率革命: HAL库与STM32CubeMX图形化界面配合,可以在图形里点点就能完成时钟、引脚、外设的初始化,并一键生成工程代码。把工程师从繁琐的初始化里解放出来,专心业务代码
- 跨芯片轻松移植: HAL库的一大优势就是硬件抽象,他提供了一套统一的API,可以非常方便的移植到其他系列的芯片上
- 丰富的中间件支持: HAL库无缝集成了ST官方提供的大量高质量中间件组件,如实时操作系统(RTOS,real-time operating System)、USB协议栈、TCP/IP网络协议栈、图形界面(GUI,Graphical User Interface)库,会省力很多