STM32学习(一):STM32简介及入门指南

目录

前言

一、STM32简介

1.STM32 是什么

2.STM32 应用领域

3.STM32 优势

 二、ARM简介

三、STM32芯片

1.芯片命名规则

 2.型号分类及缩写 

四、STM32F103C8T6

1.STM32F103C8T6 简介

2.片上资源/外设

3.引脚定义

 4.系统结构

 5.启动配置

 6.最小系统电路

 五、总结


前言

哈喽,大家好!本人目前刚开始学习stm32单片机,记录自己个人的学习过程,如果有讲的不好的地方,还请大家指正,非常感谢~~

主要介绍STM32是什么、应用领域、优势、STM32F103C8T6芯片介绍、STM32F103C8T6片上资源/外设、命名规则、系统结构、引脚定义、启动配置、最小系统电路等。

一、STM32简介

1.STM32 是什么

STM32是意法半导体(STMicroelectronics)公司(简称ST公司)基于ARM Cortex-M内核开发的32位微控制器(MCU)产品,在嵌入式系统中广泛应用。

2.STM32 应用领域

STM32常应用在嵌入式领域,如智能车、无人机、机器人、无线通信、物联网、工业控制、娱乐电子产品、医疗设备、智能家居等。

3.STM32 优势

  • STM32功能强大、性能优异、片上资源丰富、功耗低,是一款经典的嵌入式微控制器。
  • STM32提供了丰富的功能和接口,包括通用输入/输出引脚、通信接口(如UART、SPI、I2C、CAN等)、模拟输入/输出、定时器、中断控制器等。它们还具有灵活的开发工具链和丰富的软件生态系统,能够为开发者提供便利的开发环境和丰富的应用资源。
  •  二、ARM简介

    1. ARM既指ARM公司,也指ARM处理器内核。
    2. ARM Cortex-M内核是一种嵌入式处理器内核架构,由英国ARM公司推出。它专门设计用于微控制器(MCU)应用,具有出色的性能、低功耗和高度可定制的特性。
    3. Cortex-M内核系列有多个不同的版本,如Cortex-M0、Cortex-M3、Cortex-M4和Cortex-M7等。每个版本都有不同的特性和性能级别,以满足不同应用的需求。
    4. ARM公司是全球领先的半导体知识产权(IP)提供商,全世界超过95%的智能手机和平板电脑都采用ARM架构
    5. ARM公司设计ARM内核,半导体厂商完善内核周边电路并生产芯片
    图1 基于Cortex-M3 的MCU

    图2 ARM Cortex-M内核系列版本

    三、STM32芯片

    1.芯片命名规则

    图3 STM32芯片命名规则

     2.型号分类及缩写 

    STM32将芯片分为LD(Low Density)、MD(Middle Density)、HD(High Density)三类,可以分别称为低级、中级、高级。

    ps:对于内存大于等于256k的芯片,含有额外的功能,如:有LCD接口,DMA通过达到12个并且含有DAC等。

    表1 芯片型号分类及缩写 

    缩写

    释义

    Flash容量

    型号

    LD_VL

    小容量产品超值系列

    16~32K

    STM32F100

    MD_VL

    中容量产品超值系列

    64~128K

    STM32F100

    HD_VL

    大容量产品超值系列

    256~512K

    STM32F100

     LD

    小容量产品

    16~32K

    STM32F101/102/103

    MD

    中容量产品

    64~128K

    STM32F101/102/103

    HD

    大容量产品

    256~512K

    STM32F101/102/103

    XL

    加大容量产品

    大于512K

    STM32F101/102/103

    CL

    互联型产品

    STM32F105/107

    四、STM32F103C8T6

    1.STM32F103C8T6 简介

    图4 STM32F103C8T6芯片
  • 系列:主流系列STM32F1
  • 内核:ARM Cortex-M3
  • 主频:72MHz
  • ROM:(Read-Only Memory)只读存储器,64KB
  • Flash存储器:128KB,用于存储程序代码和只读数据
  • SRAM:(静态随机存储器)20KB,用于临时存储数据和堆栈等
  • 供电:2.0~3.6V(标准3.3V)
  • 封装:LQFP48
  • 2.片上资源/外设

    片上资源(On-Chip Resources)指的是集成在微控制器芯片上的各种硬件模块、电路和功能单元,用于实现特定功能或提供一定的功能支持。

    外设(Peripheral)指的是与微控制器相连的外部设备或模块,例如传感器、执行器、存储器、通信接口等。外设主要通过微控制器上的引脚和片上资源进行连接和控制。

    在微控制器中,片上资源通常是指集成在芯片内部,与核心处理器相连的各种硬件模块,例如定时器、通用输入/输出口(GPIO)、串行通信接口(USART、SPI、I2C)、模数转换器(ADC)、直接内存访问控制器(DMA)等。这些片上资源可以被程序通过寄存器配置和控制,实现各种功能和数据交换。

    外设则是连接在微控制器芯片引脚上的外部设备或模块,它们不直接属于芯片内部的硬件模块,但通过微控制器的片上资源进行控制和通信。例如,与微控制器相连的传感器、执行器、存储设备、通信接口设备等,都可以视为外设。

    通过集成丰富的片上资源和与外部设备通信的外设,微控制器可以实现各种功能,满足不同应用的需求。

    ps:实际上,不同系列的STM32微控制器可能具有不同的片上资源和外设组合。(有个印象即可)

    表2 STM32F103C8T6 片上资源/外设

    英文缩写

    名称

    英文缩写

    名称

    NVIC

    嵌套向量中断控制器

    CAN

    CAN通信

    SysTick

    系统滴答定时器

    USB

    USB通信

    RCC

    复位和时钟控制

    RTC

    实时时钟

    GPIO

    通用IO口

    CRC

    CRC校验

    AFIO

    复用IO口

    PWR

    电源控制

    EXTI

    外部中断

    BKP

    备份寄存器

    TIM

    定时器

    IWDG

    独立看门狗

    ADC

    模数转换器

    WWDG

    窗口看门狗

    DMA

    直接内存访问

    DAC

    数模转换器

    USART

    同步/异步串口通信

    SDIO

    SD卡接口

    I2C

    I2C通信

    FSMC

    可变静态存储控制器

    SPI

    SPI通信

    USB OTG

    USB主机接口

  • NVIC(Nested Vectored Interrupt Controller)是嵌套向量中断控制器,用于管理和控制微处理器中的中断请求。
  • SysTick(System Timer Tick)是一个系统定时器,用于提供一个可编程的定时器,通常用于生成固定时间间隔的中断。
  • RCC(Reset and Clock Control)是复位和时钟控制模块,用于配置和控制微处理器的系统时钟和复位信号。
  • GPIO(General Purpose Input/Output)是通用输入/输出口,用于连接外部设备或传感器,以实现输入和输出功能。
  • AFIO(Alternate Function Input/Output)是备用功能输入/输出控制器,用于配置微处理器的IO口的功能和引脚映射。
  • EXTI(External Interrupt)是外部中断控制器,用于处理外部设备或传感器的中断信号。
  • TIM(Timer)是定时器模块,用于测量时间间隔、产生定时器中断、控制PWM信号等。
  • ADC(Analog-to-Digital Converter)是模数转换器,用于将模拟信号转换为数字信号。
  • DMA(Direct Memory Access)是直接内存访问控制器,用于实现设备之间的数据传输,减轻CPU的数据传输负担。
  • USART(Universal Synchronous/Asynchronous Receiver/Transmitter)是通用同步/异步串行接收/发送器,用于实现串口通信。
  • I2C(Inter-Integrated Circuit)是串行通信总线,用于在微处理器和外部设备之间进行短距离通信。
  • SPI(Serial Peripheral Interface)是串行外设接口,用于在微处理器和外部设备之间进行通信,支持高速数据传输。
  • CAN:控制器局域网(Controller Area Network),用于实现实时数据传输和通信。
  • USB:通用串行总线(Universal Serial Bus),用于高速数据传输和设备之间的通信。
  • RTC:实时时钟(Real-Time Clock),用于记录和维护精确的实时时间。
  • CRC:循环冗余校验(Cyclic Redundancy Check),用于检测数据传输中的错误。
  • PWR:电源(Power),用于管理和控制微控制器的电源供应。
  • BKP:备份寄存器(Backup Registers),用于持久性存储数据。
  • IWDG:独立看门狗(Independent Watchdog),用于监视系统运行状态并执行复位操作。
  • WWDG:窗口看门狗(Window Watchdog),用于灵活的系统监控和复位操作。
  • DAC:数模转换器(Digital-to-Analog Converter),用于将数字信号转换为模拟信号。
  • SDIO:安全数字输入/输出(Secure Digital Input/Output),用于存储和通信的接口。
  • FSMC:静态存储控制器(Flexible Static Memory Controller),用于连接外部存储器的接口模块。
  • USB OTG:USB On-The-Go,在移动设备中实现主机和设备模式的切换以支持双向通信和数据交换。
  • 3.引脚定义

    STM32F103C8T6芯片具有48个引脚,这些引脚可以用于连接外部设备和扩展模块。

    图5 STM32F103C8T6引脚定义

    ps:

  • 标橙色:电源相关引脚;   标蓝色:最小系统相关的引脚;   标绿色:IO口、功能口引脚
  • S:电源;  I:输入;  O:输出;  I/O:输入输出
  • I/O口电平:I/O口所能容忍的电压;(FT:5V;  无FT:3.3V)
  •         (ps:若无FT且需要接5V电平,则需要加装电平转换电路)

  • 主功能:上电后默认功能(一般和引脚名称相同,若不同则引脚实际功能是主动功能而不是引脚名称的功能)
  • 默认复用功能:I/O口上同时连接的外设功能引脚(配置I/O口时可选择通用I/O口或复用功能)
  • 重定义功能:若两个功能同时复用在一个I/O口,可以把其中一个复用功能重映射到其他端口上(前提是重定义功能表里有对应端口)
  • 表3 STM32F103C8T6引脚定义表
    引脚号 引脚名称 类型 I/O口电平 主功能 默认复用功能 重定义功能
    1 VBAT  VBAT
    2 PC13-TAMPER-RTC I/O  PC13 TAMPER-RTC
    3 PC14-OSC32_IN I/O  PC14 OSC32_IN
    4 PC15-OSC32_OUT I/O  PC15 OSC32_OUT
    5 OSC_IN  OSC_IN
    6 OSC_OUT  OSC_OUT
    7 NRST  I/O  NRST
    8 VSSA  VSSA
    9 VDDA  VDDA
    10 PA0-WKUP  I/O  PA0 WKUP/USART2_CTS/ADC12_IN0/TIM2_CH1_ETR
    11 PA1  I/O  PA1  USART2_RTS/ADC12_IN1/TIM2_CH2
    12 PA2  I/O  PA2  USART2_TX/ADC12_IN2/TIM2_CH3
    13 PA3  I/O  PA3  USART2_RX/ADC12_IN3/TIM2_CH4
    14 PA4  I/O  PA4  SPI1_NSS/USART2_CK/ADC12_IN4
    15 PA5  I/O  PA5  SPI1_SCK/ADC12_IN5
    16 PA6  I/O  PA6  SPI1_MISO/ADC12_IN6/TIM3_CH1 TIM1_BKIN
    17 PA7  I/O  PA7  SPI1_MOSI/ADC12_IN7/TIM3_CH2 TIM1_CH1N
    18 PB0  I/O  PB0  ADC12_IN8/TIM3_CH3 TIM1_CH2N
    19 PB1  I/O  PB1  ADC12_IN9/TIM3_CH4 TIM1_CH3N
    20 PB2  I/O  FT  PB2/BOOT1
    21 PB10  I/O  FT  PB10  I2C2_SCL/USART3_TX TIM2_CH3
    22 PB11  I/O  FT  PB11  I2C2_SDA/USART3_RX TIM2_CH4
    23 VSS_1  VSS_1
    24 VDD_1  VDD_1
    25 PB12  I/O  FT  PB12 SPI2_NSS/I2C2_SMBAI/USART3_CK/TIM1_BKIN
    26 PB13  I/O  FT  PB13  SPI2_SCK/USART3_CTS/TIM1_CH1N
    27 PB14  I/O  FT  PB14  SPI2_MISO/USART3_RTS/TIM1_CH2N
    28 PB15  I/O  FT  PB15  SPI2_MOSI/TIM1_CH3N
    29 PA8  I/O  FT  PA8 USART1_CK/TIM1_CH1/MCO
    30 PA9  I/O  FT  PA9  USART1_TX/TIM1_CH2
    31 PA10  I/O  FT  PA10  USART1_RX/TIM1_CH3
    32 PA11  I/O  FT  PA11 USART1_CTS/USBDM/CAN_RX/TIM1_CH4
    33 PA12  I/O  FT  PA12 USART1_RTS/USBDP/CAN_TX/TIM1_ETR
    34 PA13  I/O  FT  JTMS/SWDIO  PA13
    35 VSS_2  VSS_2
    36 VDD_2  VDD_2
    37 PA14  I/O  FT  JTCK/SWCLK  PA14
    38 PA15  I/O  FT  JTDI  TIM2_CH1_ETR/PA15/SPI1_NSS
    39 PB3  I/O  FT  JTDO PB3/TRACESWO/TIM2_CH2/SPI1_SCK
    40 PB4  I/O  FT  NJTRST  PB4/TIM3_CH1/SPI1_MISO
    41 PB5  I/O  PB5  I2C1_SMBAI  TIM3_CH2/SPI1_MOSI
    42 PB6  I/O  FT  PB6  I2C1_SCL/TIM4_CH1 USART1_TX
    43 PB7  I/O  FT  PB7  I2C1_SDA/TIM4_CH2 USART1_RX
    44 BOOT0  BOOT0
    45 PB8  I/O  FT  PB8  TIM4_CH3 I2C1_SCL/CAN_RX
    46 PB9  I/O  FT  PB9  TIM4_CH4 I2C1_SDA/CAN_TX
    47 VSS_3  VSS_3
    48 VDD_3  VDD_3

     4.系统结构

    图6 STM32F103C8T6系统结构

     5.启动配置

    ps:X:即无论接什么; 1:即接3.3V电源; 0:即接GND 

    (一般情况下BOOT1和BOOT0都接GND,即主闪存存储器(Flash)为启动区域)

    图7 STM32F103C8T6的启动配置

     6.最小系统电路

    图8 STM32F103C8T6最小系统电路

     五、总结

    个人学习资料来源b站视频:

    [1-2] STM32简介_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1th411z7sn/?p=2&spm_id_from=333.880.my_history.page.click&vd_source=9778399bc878bb45906a6acdd2554325

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32学习(一):STM32简介及入门指南

    发表评论