找到柴头物联网:
Bilibili:https://www.bilibili.com/video/BV1Fq421w7zb
CSDN:柴头物联网-CSDN博客
西瓜视频:https://www.ixigua.com/home/607342776027742
公众号:柴头物联网
STM32 是一款由意法半导体公司推出的微控制器系列,广泛应用于物联网领域。它具有丰富的功能、较高的性价比和庞大的用户社区。
1. 学习 STM32 开发需要有哪些知识储备?
- 嵌入式系统基础知识: 了解嵌入式系统的基本原理、架构和工作原理是必要的。
- 理解嵌入式系统的概念和特点,以及与通用计算机系统的区别。
- 掌握嵌入式系统的架构和组成部分,包括处理器、内存、外设等。
- 了解嵌入式系统的工作原理,包括启动过程、中断处理、时钟管理等。
- C 语言编程: STM32 开发通常使用 C 语言进行编程,因此需要具备扎实的 C 语言编程能力。
- 深入学习C语言的基本语法和数据类型,包括变量、运算符、控制结构等。
- 熟悉C语言的函数和数组,掌握如何定义和调用函数、以及如何使用数组进行数据处理。
- 了解C语言的指针和内存管理,理解指针的概念和用法,并学习动态内存分配的相关知识。
- 数字电路和模拟电路基础: 了解数字电路和模拟电路的基本概念和原理,有助于理解 STM32 的工作原理。
- 理解数字电路的基本概念,包括布尔代数、逻辑门、组合逻辑和时序逻辑等。
- 学习模拟电路的基本原理,包括电压、电流、电阻等基本概念,以及放大器、滤波器等模拟电路的设计和分析方法。
- 掌握数字电路与模拟电路之间的接口和转换方法,如ADC和DAC等。
- 微控制器基础知识: 了解微控制器的基本结构、寄存器的功能和操作方法(由于在本教程中不涉及到寄存器操作,这里只做介绍)。
- 了解微控制器的基本结构和组成部分,包括CPU、存储器、定时器、串口等。
- 深入学习微控制器的工作原理,包括时钟管理、中断控制、低功耗模式等。
- 熟悉微控制器的编程模型和编程接口,了解寄存器的功能和操作方法,以便进行底层编程和驱动开发。
- 编程工具: 熟悉使用开发工具链、编译器以及调试器等工具进行 STM32 的软件开发,熟悉 Keil 工具如何使用。
- 熟悉常用的开发工具链,包括编译器、链接器、汇编器等,了解它们的工作原理和使用方法。
- 掌握调试工具的使用,包括仿真器、调试器、逻辑分析仪等,能够进行代码调试和性能分析。
- 学习如何使用集成开发环境(IDE),如Keil、IAR等,进行代码编辑、编译、调试和下载。
2. STM32 在物联网架构中的位置在哪里?
在物联网架构中,STM32 微控制器通常被用作连接各种传感器、执行控制逻辑和与网络通信的节点。它可以作为物联网边缘设备的核心处理器,负责数据采集、处理和通信,同时也可以与云端服务进行通信,实现远程监控和控制。
3. STM32 在物联网中充当的角色是什么?
在物联网中,STM32 微控制器通常扮演以下角色:
- 传感器节点: 连接各种传感器,采集环境数据如温度、湿度、光照等。
- 控制节点: 根据传感器数据进行控制逻辑的执行,如自动调节温度、控制灯光等。
- 通信节点: 与其他设备或者云端进行数据通信,传输采集的数据或者接收控制指令。
4. 为什么是 STM32?能选别的吗?
选择 STM32 的原因包括:
- 广泛的支持和社区: STM32 是由 STMicroelectronics 公司推出的一系列微控制器,拥有庞大的用户社区和丰富的开发资源。
- 丰富的功能和性能: STM32 微控制器提供了丰富的外设和功能,适用于不同的应用场景,并且具有良好的性能表现。
- 成本效益高: STM32 微控制器的成本相对较低,性价比较高。
当然,除了 STM32,还有其他厂家的微控制器可供选择,如国内的 N32、GD32 等。
5. 我学了 STM32,再学其他的简单吗?
类似的会非常简单,嵌入式开发原理就是这样,都是通过代码去访问寄存器,给不同的寄存器配置不同的值,就会有不一样的效果。
我们学习了如何用 STM32 标准库去驱动底层驱动器,就会使用其他开发板的标准库去驱动他们的底层寄存器。
以下是 STM32 和 N32 驱动一个 LED 灯的代码对比,仔细对比就会发现,哦,原来都是差不多的。
6. 学习 STM32 的流程可以是什么?
- 寄存器级编程(Register-Level Programming):
-
- 理解芯片架构: 学习芯片的手册和数据表,了解芯片的功能和寄存器的作用。
- 直接操作寄存器: 使用寄存器级编程直接控制芯片的各个功能和外设。
- 学习位操作: 理解如何通过位操作来设置和清除寄存器中的特定位,从而控制硬件行为。
- 标准库(Standard Library):
-
- 熟悉标准库函数: 学习使用标准库提供的函数来操作 STM32 的硬件,例如 GPIO 控制、定时器配置等。
- 编写简单的应用: 使用标准库编写简单的 STM32 应用程序,例如点亮 LED、控制外设等。
- HAL库(Hardware Abstraction Layer Library):
-
- 抽象硬件操作: 学习使用 HAL 库提供的函数来抽象硬件操作,使得代码更加可移植和易读。
- 使用 HAL 库函数: 利用 HAL 库提供的函数来完成更复杂的任务,如使用串口通信、PWM 控制等。
- 学习 HAL 库的底层实现: 理解 HAL 库的底层实现原理,有助于更深入地理解 STM32 的硬件结构和驱动开发原理。
- RTOS(Real-Time Operating System):
-
- 理解RTOS概念: 学习实时操作系统的基本概念,包括任务、调度器、同步和通信等。
- 使用RTOS编程: 学习如何在 STM32 上使用RTOS,例如FreeRTOS,来实现多任务并发、任务优先级管理等。
- 开发复杂的应用: 利用RTOS开发更复杂的应用,例如实时数据采集、控制系统等,提高系统的稳定性和可靠性。
7. STM32 哪些学习资料参考?
学习 STM32 可以参考以下资料:
- 官方文档和手册: STMicroelectronics 官方网站提供了丰富的文档和手册,包括数据手册、应用笔记、参考手册等。
- 正点原子:正点原子资料下载中心 — 正点原子资料下载中心 1.0.0 文档
- 野火嵌入式:野火产品资料下载中心 — 野火产品资料下载中心 文档
- 百问网:👨💻百问网资料下载中心 — 百问网资料下载中心 3.0 文档
- 嵌入式学习网站:嵌入式学习网站整理
8. 开发 STM32 需要购买的最少元器件是什么?
- STM32 开发板: 可以选择官方提供的开发板或者第三方的开发板,用于快速开始开发和调试,推荐使用最小核心板STM32F103C6T6,这个型号的芯片已经足以初学者使用了,6 块钱左右可以买到一块已经焊接好的。
- 下载器:可以是 STLink、JLink 都是可以的,手上有什么可以用什么,如果没有就可以买最便宜的 STLink,9 块钱左右就可以买到一个国产芯片的 STLink 下载器。
- 推荐再购买一个 CH340 串口模块,用来查看单片机输出的串口数据,大概是 4 块钱
上述的 3 件物品合起来差不多 18 元,如下图:
在我们学到外设的时候,到时候会在推荐一些便宜好用的外设给到各位同学。
9. 开发 STM32 一般会用到什么工具?
- 集成开发环境(IDE): 如 Keil、IAR、STM32CubeIDE 等,用于编写、编译、调试代码。
- STM32CubeMX: 用于配置 STM32 微控制器的引脚分配、时钟设置等
我们在刚开始入门的时候,会使用 Keil+标准库的方式进行开发。
10. 结语
本教程注重感性认识,让同学们先能实现想要的功能,在后续的教程中才会细究原理,不是讲的不够细,而是要让同学们能够快速的上手,再去学习后续的开发。
举个例子,在教程中,点亮 LED灯,并不会细究到为什么要配置 GPIO 口为推挽输出而不是用开漏输出,但是会提到 IO 口有推挽输出、开漏输出等配置,详细可移步到 STM32 系列入门教程(B 站有很多)。
11. 资料
MDK-ARM Keil5:
STM32CubeIDE:
如果您读到这里,有兴趣一起学习!关注小柴,一起进步!