本篇,聊一点让STM32新手少走些弯路的闲话。
目录
一、 STM32是什么,能干什么?
1、STM32是什么?
STM32是一款由STMicroelectronics(意法半导体)公司生产的微控制器(MCU)。简单来说,它就像是一个“超级大脑”,可以用来控制各种电子设备。STM32的核心是一个32位的ARM Cortex-M处理器,这意味着它比普通的8位微控制器(比如51单片机)更强大、更灵活。
2、STM32能干什么?
STM32可以用来实现各种有趣的项目,比如:
- 控制LED灯、蜂鸣器、电机等硬件:点亮LED灯、控制电机转动、让蜂鸣器发出声音。
- 采集传感器数据:采集温度、湿度、光强、距离等。
- 与外部设备通信:通过蓝牙、Wi-Fi、串口与其他设备交换数据。
- 制作智能小车、机器人:用STM32控制小车的运动,实现避障、循迹等功能。
- 智能家居设备:制作一个智能开关、自动浇花装置等。
3、为什么选择STM32?
- 功能强大:支持多种外设接口(如SPI、I2C、UART等),可以连接各种传感器和模块。
- 资源丰富:官方有大量的支持文档; 网上海量的免费教程、文档和开源代码,方便学习。
- 国产替代:做项目时,有大量的国产型号,能Pin to Pin地完美替换STM32。大家都懂~~
二、STM32的学习路径建议
很多板商教程,都会从理论知识起步,一点点地讲解STM32。
但是,小编也是趴在地上爬着过来的,真心不建议刚上手STM32就花大量时间埋头理论知识。
因为,绝大部分理论在这个阶段是看不明白的!理解效率低,进度慢,很容易失去劲头。
建议的上手方法是,先花一周左右,细细消化下面6项:
- 新建工程、编译、仿真器设置、烧录; (半天)
- GPIO 输入、输出 (1天)
- EXTI 外部中断 (半天)
- NVIC (半天)
- UART、printf (两天;极度重要,玩溜STM32的必备技能)
- 移植文件 (1小时)
这6项,是STM32的入门基础 ,也是玩溜STM32的重中之重!必须精学、精通!
然后,可以开始着手做自己的项目!
是的,你没看错,在这个阶段,就应该开始做项目了!边做边查,边抄边学 !
当需要用到 SPI、I2C、CAN、屏幕显示、RTOS时, 抄板商代码即可,或者, 上csdn.cn翻文章。
不管是什么方案,先去做!
不管是什么项目,先去做!
只有通过实战,才能发现知识需求、有效地扩充知识量!
也只有通过不断的错误排查,才能更深入理解地 GPIO、EXTI、NVIC、UART 、printf 这几项的。
谨记:
玩嵌入式开发,日常状态是:每天都是抄、每天都在踩坑、每天都在排错 !
也因此,我们必须精通上述几项,踩坑时,才能用最基本的手段定位错位!不然,叫天天不灵!
三、STM32 开发环境推荐
1、开发软件的选择
- Keil + CubeMX: 目前最优解; CubeMX负责配置、生成工程,Keil 负责编写代码、编译、烧录、调试; 目前STM32的项目,绝大部分都是基于Keil。
- CubeIDE:免费!没版权问题!近两年的新兴软件。可以理解为Keil+CubeMX的结合体。但是有两个明显的短板:不支持中文目录、名称,和参考工程尚少; 适合企业用户!
- VSCode:玩纯软件开发那批客户的至爱, 界面美观,写代码很享受,感觉是丝一般顺滑。缺点:环境配置、插件安装、调试、烧录,比较麻烦,另外也是参考工程数量少。适合有经验的老司机折腾。
2、库的选择
意法半导体最初推出的是STM32F103系列,官方提供了标准库,方便开发者快速开发应用。
接着推出的F4系列,官方也提供了标准库。
但是,F1与F4的标准库,代码是不通用的。如 F1的GPIO 初始化代码,不能复制到F4上使用。
后续STM32的型号越出越多,官方为了实现底层与业务层的解耦、提高代码的通用性和可移植性,ST官方在后续推出的STM32系列中统一采用HAL库(还有一个没人喜欢的LL库)。
HAL库提供了更高层次的抽象,便于在不同STM32产品之间移植代码,同时支持与STM32CubeMX等工具的无缝配合。
综上所述,如果你使用的是F1、F4系列,可以选择标准库、HAL库。如果使用的F7、H7、G4等系列,就没有标准库了,只能使用HAL库。
建议1:不管哪个系列,优先使用HAL库! 主流趋势!能方便地把业务代码移植到不同的型号上。
建议2:HAL库的运行效率不高,当某些功能需要频繁地、速度地运行时,如刷屏,把这部分运行代码,改为寄存器操作,能有效地提高效率!
3、 常用的辅助软件、网站
在学习STM32开发过程中,以下辅助软件、链接经常会用到:
软件名称 | 用途 | 下载链接 |
---|---|---|
串口调试助手 | 用于查看串口通信数据(如调试信息) | 常用串口助手下载 |
csdn.net | 资料、代码,开发者的圣地 | https://www.csdn.net/ |
Kimi | AI。语法、程序逻辑、技术,通通能问 | |
DeepSeek | AI。同上。与Kimi对照着问,更准确 | |
PixPin | 免费的截图工具。抄功课的必备神器 | PixPin - 强大且免费的截图贴图工具 |
有道翻译 | 免费的翻译软件。单词翻译、截图翻译 | 有道翻译桌面端_官方下载 |