Lecture3

Meta电控培训【第三讲】

STM32基础

1. STM32简介

基础知识

单片机

单片机(Single-chip microcomputer),是把中央处理器、存储器、定时/计数器(timer/counter)、各种输入输出接口等都集成在一块集成电路芯片上的微型计算机。与应用在个人计算机中的通用微处理器相比,它更强调自供应(不用外接硬件)和节约成本,集成程度更高,但因为规格已经包含,所能实现的功能也较专一。它的最大优点是体积小,可放在仪表内部,但存储量小,输入输出接口简单。由于其发展非常迅速,旧的定义已不能满足,所以在很多应用场合被称为范围更广的微控制器(microcontroller)。

STM32

STM32,是由意法半导体基于 ARM Cortex-M 研制和生产的一系列32位单片机。 单片机,即微处理器,微处理器(Microprocessor)通常指称一种可编程特殊集 成电路,其所有组件小型化至一块或数块集成电路内。

其他概念

  • 计算机架构:计算机使用的指令集

    • 计算机常见架构:ARM架构、x86架构
  • 外设:电子计算机中位于机箱之外、能够通电并可以不依赖计算机进行正常的独立或半独立运行的硬件。 例如STM32中的TIM定时器、通用输入输出(GPIO)、中断控制器等。在现代电脑中可以包括键盘鼠标等。

  • 寄存器: 寄存器(Register)是中央处理器内用来暂存指令、数据和地址的存储器。寄存器的存贮容量有限,读写速度非常快。在计算机体系结构里,寄存器存储在已知时间点所作计算的中间结果,通过快速地访问数据来加速计算机程序的执行。

常见单片机

  • 51系列单片机
  • STM32
  • ESP32

STM32组成

  • ARM Cortex CPU
  • 外设

STM32实质上是由ARM提供中央处理器,意法半导体在此基础上设计外设所组成的微处理器。

2. STM32型号与分类

STM32

STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex®-M0,M0+,M3, M4和M7内核  。按内核架构分为不同产品: 主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(STM32L0、STM32L1、STM32L4、STM32L4+)、高性能产品(STM32F2、STM32F4、STM32F7、STM32H7)等。

STM32最常见型号:STM32F1系列和STM32F4系列。 RoboMaster A型开发板和C型开发板都属于STM32F4系列。C型开发板具体型号为STM32F407。

3. 常用开发工具

开发软件

  • Keil5
  • STM32CubeMX
  • Clion
  • ARM GNU Toolchain (arm-none-eabi编译器)
  • Eclipse

开发软件库

  • CMSIS
  • STM32标准库
  • STM32标准HAL库
  • 实时操作系统(FreeRTOS, uCOS, ChibiOS)

烧录器

  • ST-Link
  • JTAG

debug、烧录软件

  • OpenOCD

4. STM32开发方法简述

对于裸机编程(不适用实时操作系统进行线程调度),主要使用三种方法编写代码:直接操作寄存器、 标准库函数编程(较老)、标准HAL(Hardware Abstraction Layer,硬件抽象层)库。如果 不采取裸机编程,那么将会使用到实时操作系统(RTOS)。

RTOS具有Linux等操作系统不具有的任务实时性响应机制,具体体现在线程调度机制等方面。

(a) Keil + 标准库

(b) Keil + STM32CubeMX + 标准Hal库

(c) Keil + STM32CubeMX + 标准Hal库 + FreeRTOS

(d) Clion + ChibiOS + ChibiOS HAL

5. Metaz战队工具链

工具链配置教程由Meta战队前项管刘子恺学长倾力打造。 因为这篇Wiki年代久远,其中有些链接内容可能已经发生错误或者失效。 在之前的文章中,我们已经安装过MinGW, git, cmake等工具,在根据教程安装工具链时,不要重复安装。

Meta战队工具链配置教程点击此处

6. 课后作业

  • 继续观看黑马程序员
  • 按照第五部分教程链接完成工具链配置。
  • (可选)自行学习STM32有关知识


0%