《手把手教教学物联网项目》 06 什么是 STM32?

找到柴头物联网:

Bilibili:https://www.bilibili.com/video/BV1Fq421w7zb

CSDN:柴头物联网-CSDN博客

西瓜视频:https://www.ixigua.com/home/607342776027742

公众号:柴头物联网


STM32 是一款由意法半导体公司推出的微控制器系列,广泛应用于物联网领域。它具有丰富的功能、较高的性价比和庞大的用户社区。

1. 学习 STM32 开发需要有哪些知识储备?

  1. 嵌入式系统基础知识: 了解嵌入式系统的基本原理、架构和工作原理是必要的。
  • 理解嵌入式系统的概念和特点,以及与通用计算机系统的区别。
  • 掌握嵌入式系统的架构和组成部分,包括处理器、内存、外设等。
  • 了解嵌入式系统的工作原理,包括启动过程、中断处理、时钟管理等。
  1. C 语言编程: STM32 开发通常使用 C 语言进行编程,因此需要具备扎实的 C 语言编程能力。
  • 深入学习C语言的基本语法和数据类型,包括变量、运算符、控制结构等。
  • 熟悉C语言的函数和数组,掌握如何定义和调用函数、以及如何使用数组进行数据处理。
  • 了解C语言的指针和内存管理,理解指针的概念和用法,并学习动态内存分配的相关知识。
  1. 数字电路和模拟电路基础: 了解数字电路和模拟电路的基本概念和原理,有助于理解 STM32 的工作原理。
  • 理解数字电路的基本概念,包括布尔代数、逻辑门、组合逻辑和时序逻辑等。
  • 学习模拟电路的基本原理,包括电压、电流、电阻等基本概念,以及放大器、滤波器等模拟电路的设计和分析方法。
  • 掌握数字电路与模拟电路之间的接口和转换方法,如ADC和DAC等。
  1. 微控制器基础知识: 了解微控制器的基本结构、寄存器的功能和操作方法(由于在本教程中不涉及到寄存器操作,这里只做介绍)。
  • 了解微控制器的基本结构和组成部分,包括CPU、存储器、定时器、串口等。
  • 深入学习微控制器的工作原理,包括时钟管理、中断控制、低功耗模式等。
  • 熟悉微控制器的编程模型和编程接口,了解寄存器的功能和操作方法,以便进行底层编程和驱动开发。
  1. 编程工具: 熟悉使用开发工具链、编译器以及调试器等工具进行 STM32 的软件开发,熟悉 Keil 工具如何使用。
  • 熟悉常用的开发工具链,包括编译器、链接器、汇编器等,了解它们的工作原理和使用方法。
  • 掌握调试工具的使用,包括仿真器、调试器、逻辑分析仪等,能够进行代码调试和性能分析。
  • 学习如何使用集成开发环境(IDE),如Keil、IAR等,进行代码编辑、编译、调试和下载。

2. STM32 在物联网架构中的位置在哪里?

在物联网架构中,STM32 微控制器通常被用作连接各种传感器、执行控制逻辑和与网络通信的节点。它可以作为物联网边缘设备的核心处理器,负责数据采集、处理和通信,同时也可以与云端服务进行通信,实现远程监控和控制。

3. STM32 在物联网中充当的角色是什么?

在物联网中,STM32 微控制器通常扮演以下角色:

  1. 传感器节点: 连接各种传感器,采集环境数据如温度、湿度、光照等。
  2. 控制节点: 根据传感器数据进行控制逻辑的执行,如自动调节温度、控制灯光等。
  3. 通信节点: 与其他设备或者云端进行数据通信,传输采集的数据或者接收控制指令。

4. 为什么是 STM32?能选别的吗?

选择 STM32 的原因包括:

  1. 广泛的支持和社区: STM32 是由 STMicroelectronics 公司推出的一系列微控制器,拥有庞大的用户社区和丰富的开发资源。
  2. 丰富的功能和性能: STM32 微控制器提供了丰富的外设和功能,适用于不同的应用场景,并且具有良好的性能表现。
  3. 成本效益高: STM32 微控制器的成本相对较低,性价比较高。

当然,除了 STM32,还有其他厂家的微控制器可供选择,如国内的 N32、GD32 等。

5. 我学了 STM32,再学其他的简单吗?

类似的会非常简单,嵌入式开发原理就是这样,都是通过代码去访问寄存器,给不同的寄存器配置不同的值,就会有不一样的效果。

我们学习了如何用 STM32 标准库去驱动底层驱动器,就会使用其他开发板的标准库去驱动他们的底层寄存器。

以下是 STM32 和 N32 驱动一个 LED 灯的代码对比,仔细对比就会发现,哦,原来都是差不多的。

6. 学习 STM32 的流程可以是什么?

  1. 寄存器级编程(Register-Level Programming):
    • 理解芯片架构: 学习芯片的手册和数据表,了解芯片的功能和寄存器的作用。
    • 直接操作寄存器: 使用寄存器级编程直接控制芯片的各个功能和外设。
    • 学习位操作: 理解如何通过位操作来设置和清除寄存器中的特定位,从而控制硬件行为。
  1. 标准库(Standard Library):
    • 熟悉标准库函数: 学习使用标准库提供的函数来操作 STM32 的硬件,例如 GPIO 控制、定时器配置等。
    • 编写简单的应用: 使用标准库编写简单的 STM32 应用程序,例如点亮 LED、控制外设等。
  1. HAL库(Hardware Abstraction Layer Library):
    • 抽象硬件操作: 学习使用 HAL 库提供的函数来抽象硬件操作,使得代码更加可移植和易读。
    • 使用 HAL 库函数: 利用 HAL 库提供的函数来完成更复杂的任务,如使用串口通信、PWM 控制等。
    • 学习 HAL 库的底层实现: 理解 HAL 库的底层实现原理,有助于更深入地理解 STM32 的硬件结构和驱动开发原理。
  1. RTOS(Real-Time Operating System):
    • 理解RTOS概念: 学习实时操作系统的基本概念,包括任务、调度器、同步和通信等。
    • 使用RTOS编程: 学习如何在 STM32 上使用RTOS,例如FreeRTOS,来实现多任务并发、任务优先级管理等。
    • 开发复杂的应用: 利用RTOS开发更复杂的应用,例如实时数据采集、控制系统等,提高系统的稳定性和可靠性。

7. STM32 哪些学习资料参考?

学习 STM32 可以参考以下资料:

  1. 官方文档和手册: STMicroelectronics 官方网站提供了丰富的文档和手册,包括数据手册、应用笔记、参考手册等。
  2. 正点原子:正点原子资料下载中心 — 正点原子资料下载中心 1.0.0 文档
  3. 野火嵌入式:野火产品资料下载中心 — 野火产品资料下载中心 文档
  4. 百问网:👨‍💻百问网资料下载中心 — 百问网资料下载中心 3.0 文档
  5. 嵌入式学习网站:嵌入式学习网站整理

8. 开发 STM32 需要购买的最少元器件是什么?

  1. STM32 开发板: 可以选择官方提供的开发板或者第三方的开发板,用于快速开始开发和调试,推荐使用最小核心板STM32F103C6T6,这个型号的芯片已经足以初学者使用了,6 块钱左右可以买到一块已经焊接好的。
  2. 下载器:可以是 STLink、JLink 都是可以的,手上有什么可以用什么,如果没有就可以买最便宜的 STLink,9 块钱左右就可以买到一个国产芯片的 STLink 下载器。

  1. 推荐再购买一个 CH340 串口模块,用来查看单片机输出的串口数据,大概是 4 块钱

上述的 3 件物品合起来差不多 18 元,如下图:

在我们学到外设的时候,到时候会在推荐一些便宜好用的外设给到各位同学。

9. 开发 STM32 一般会用到什么工具?

  1. 集成开发环境(IDE): 如 Keil、IAR、STM32CubeIDE 等,用于编写、编译、调试代码。
  2. STM32CubeMX: 用于配置 STM32 微控制器的引脚分配、时钟设置等

我们在刚开始入门的时候,会使用 Keil+标准库的方式进行开发。

10. 结语

本教程注重感性认识,让同学们先能实现想要的功能,在后续的教程中才会细究原理,不是讲的不够细,而是要让同学们能够快速的上手,再去学习后续的开发。

举个例子,在教程中,点亮 LED灯,并不会细究到为什么要配置 GPIO 口为推挽输出而不是用开漏输出,但是会提到 IO 口有推挽输出、开漏输出等配置,详细可移步到 STM32 系列入门教程(B 站有很多)。

11. 资料

MDK-ARM Keil5:

STM32CubeIDE:


如果您读到这里,有兴趣一起学习!关注小柴,一起进步!

  • 35
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值