1. 课程导入
各位同学好,欢迎来到《STM32外设驱动与RT-Thread集成实践实战》的第一章。
说实话,我见过太多工程师在学嵌入式时,第一步就栽在了环境搭建上。不是IDE装不上,就是调试器连不通,折腾半天连个灯都点不亮。这节课,我带你把这些坑都填平。
1.1 课程目标与学习路径
这门课到底要学什么?说白了,就是两件事:把STM32的外设玩明白,把RT-Thread系统用起来。
我个人习惯把学习路径分成三个阶段:
- 基础期(第1-10章):熟悉开发板、搭建环境、掌握GPIO/UART/SPI/I2C等基础外设驱动。
- 进阶期(第11-20章):引入RT-Thread内核,学习线程、信号量、消息队列等机制,并移植到STM32上。
- 实战期(第21-30章):综合项目实战,比如智能传感器采集、Wi-Fi联网、电机控制等。
你想想看,如果连串口都调不通,后面谈RTOS调度就是空中楼阁。所以别急,一步一步来。
核心目标:学完本课程,你能独立完成一个基于STM32F407 + RT-Thread的嵌入式项目,从驱动层到应用层都能自己搞定。
1.2 开发板介绍:STM32F407
我们选用的开发板是正点原子探索者STM32F407。为什么选它?
- 主频高:168MHz,Cortex-M4内核带FPU,跑RTOS绰绰有余。
- 外设丰富:1MB Flash、192KB SRAM,还有DCMI摄像头接口、以太网MAC、FSMC等高级外设。
- 资料多:网上教程、例程一抓一大把,遇到问题好查。
我记得有一次做项目,需要同时驱动摄像头、LCD和以太网,换别的芯片早就捉襟见肘了,但F407硬是扛了下来。嗯,这就是我选它的原因。
| 参数 | STM32F407ZGT6 |
|---|---|
| 内核 | ARM Cortex-M4 (FPU) |
| 主频 | 168 MHz |
| Flash | 1 MB |
| SRAM | 192 KB |
| GPIO | 114 个 |
| 通信接口 | 6x USART, 3x SPI, 3x I2C, 2x CAN |
1.3 IDE安装:Keil MDK 与 RT-Thread Studio
工欲善其事,必先利其器。我们准备两套开发环境:
1.3.1 Keil MDK
Keil是老牌工具了,很多工程师从51单片机就开始用。安装步骤很简单:
- 去ARM官网下载MDK-Arm安装包(建议5.38及以上版本)。
- 一路Next安装,注意安装路径不要有中文。
- 安装完成后,打开Pack Installer,下载STM32F4xx的Device Family Pack。
- 破解(你懂的),输入License。
注意:Keil MDK的编译器版本默认是V5,如果你用V6(ARM Compiler 6),记得在工程选项里切换。我曾经因为编译器版本不对,编译出来的代码跑飞了,查了整整一天。
1.3.2 RT-Thread Studio
RT-Thread Studio是RT-Thread官方推出的IDE,集成了RT-Thread源码、Env工具和GCC编译器。我个人更推荐用它来做RT-Thread项目,因为开箱即用,省去很多配置时间。
- 访问RT-Thread官网下载Studio安装包。
- 安装后,打开Studio,在SDK管理器中下载STM32F4xx的SDK。
- 新建工程时选择“基于芯片”,选STM32F407ZG,系统会自动生成模板代码。
说实话,用Studio最大的好处是——你不用手动写链接脚本和启动文件。这些它都帮你搞定了。
1.4 调试工具:J-Link 与 ST-Link
调试工具是嵌入式开发的“听诊器”。没有它,你只能靠猜。
| 调试器 | 优点 | 缺点 |
|---|---|---|
| J-Link | 速度快、支持芯片多、调试功能强 | 正版贵(盗版不稳定) |
| ST-Link | 便宜、STM32原生支持、够用 | 速度一般、功能有限 |
我的建议是:初学者用ST-Link就够了。正点原子探索者板载了ST-Link/V2,插上USB线就能用。如果你以后做商业项目,再考虑J-Link。
小技巧:用ST-Link调试时,如果提示“No ST-Link detected”,先检查驱动。去ST官网下载“ST-Link USB driver”安装即可。我遇到过好几次,都是驱动没装对。
1.5 串口工具准备
串口是嵌入式开发者的“眼睛”。调试信息、日志输出、数据交互,全靠它。
推荐两款工具:
- PuTTY:轻量、稳定,适合快速测试。
- MobaXterm:功能强大,支持多会话、X11转发,我平时用这个。
配置参数:
- 波特率:115200(常用)
- 数据位:8
- 停止位:1
- 校验位:无
- 流控:无
嗯,这里要注意:串口线一定要接对。开发板的TX接USB转串口模块的RX,RX接TX。我刚开始学的时候,把TX接TX,结果死活收不到数据,还以为是芯片坏了。
1.6 知识体系总览
下面这张图,概括了本章的核心内容。你可以把它当作整个课程的“地图”。
1.7 本章小结
这一章我们做了几件事:
- 明确了课程目标和学习路径。
- 认识了STM32F407开发板的核心参数。
- 安装了Keil MDK和RT-Thread Studio两套IDE。
- 了解了J-Link和ST-Link调试工具的区别。
- 准备好了串口调试工具。