【江科协】【1-2】STM32学习笔记:了解STM32简介

  • STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器
  • ST:ST公司;

    M:Microcontroller(微控制器MCU,单片机);

    32:32位单片机;

    内核:ARM Cortex-M,程序指令的执行、加减乘除,相当于芯片CPU

    *ST公司拿着ARM公司的内核,完善外围电路,封装起来成了STM32

    *以ARM为内核的芯片称为基于ARM内核的单片机

  • STM32在嵌入式领域
  • 智能车:用STM32做寻迹小车,读取光电传感器或摄像头数据,然后驱动电机前进和转弯;

    无人机:STM32读取陀螺仪加速度计的姿态数据,然后根据控制算法去控制电机的速度,从而保证飞机稳定飞行;

    机器人:STM32控制舵机来控制机器人的关节,让机器人运动;

    无线通信:给STM32接上2.4G无线模块或者蓝牙、WIFI模块;

    物联网:借助无线通信模块通信,比如蓝牙、WIFI、ZigBee,再通过STM32驱动继电器控制220V电路的通断;

    工业控制:PLC主控有STM32;

    娱乐电子产品

    STM32家族

  •  ARM既指ARM公司,也指ARM处理器内核
  • ARM公司是全球领先的半导体知识产权(IP)提供商,只设计内核不生产实物
  • ARM公司设计ARM内核,半导体厂商完善内核周边电路并生产芯片,如STM32 
  • ARM内核型号
  •  STM32F108C8T6
  • •系列:主流系列STM32F1

    •内核:ARM Cortex-M3

    •主频:72MHz

    •RAM(运行内存):20K(SRAM实际存储介质)

    •ROM(程序存储器):64K(Flash实际存储介质)

    •供电:2.0~3.6V(标准3.3V)(如果是5V电压需加稳压芯片,把电压降到3.3V)

    •封装:LQFP48(48个引脚)

  • 片上资源/外设(Peripheral)
  • 通过程序配置外设到达想要的功能

    下面两个是位于Cortex-M3内核里面的外设,其余的则位于内核外

    NVIC

    嵌套向量中断控制器

    管理中断,如配置中断优先级

    SysTick

    系统滴答定时器

    内核里的定时器,给操作系统提供定时服务,完成delay函数

    STM32可以加入操作系统如FreeRTOS,UCOS等,如果用了这些操作系统,就需SysTick提供定时来进行任务切换功能

    RCC

    复位和时钟控制

    对系统的时钟进行配置,使能各模块的时钟。STM32中,其他外设上电情况下默认为了降低功耗没有时钟。不给时钟的情况下,操作外设是无效的,外设也不会工作。所以操作外设之前,应使能时钟。RCC来完成时钟的使能

    GPIO

    通用IO

    用来点灯读取按键等

    AFIO

    复用IO

    复用端口的重定义,还有中断端口的配置

    EXTI

    外部中断

    配置好外部中断后,就可以触发中断,让CPU来处理任务

    TIM

    定时器

    整个STM32最常用、功能最多的外设

    分为高级定时器(最复杂)、通用定时器(最常用)、基本定时器三种类型

    可完成定时中断的任务,测频率,生成PWM波形,配置成专用编码器接口等功能

    生成PWM波形是电机驱动、舵机驱动的最基本要求

    ADC

    模数转换器

    STM32内置了12位的AD转换器,可以直接读取IO口的模拟电压值,无需外部连接AD芯片

    DMA

    直接内存访问

    帮助CPU完成搬运大量数据这样繁杂的任务

    USART

    同步/异步串口通信

    UART异步串口

    I2C

    I2C通信

    SPI

    SPI通信

    非常常用的两个通信协议,STM32内置了它们的控制器,可以用硬件输出时序波形

    通用IO口模拟时序波形也可

    CAN

    CAN通信

    通信协议,多用于汽车领域

    USB

    USB通信

    通信协议,可用STM32的USB外设做一个模拟鼠标、模拟U盘等设备

    RTC

    实时时钟

    实时时钟,在STM32内部完成年月日、时分秒等计算功能,可接外部备用电池,即使掉电也可以正常使用

    CRC

    CRC校验

    一种数据的校验方式,用来判断数据的正确性

    PWR

    电源控制

    可让芯片进入睡眠模式等状态,达到省电的目的

    BKP

    备份寄存器

    这是一段存储器,当系统掉电时,仍可由备用电池保持数据。根据需要还可以完成一些特殊功能。

    IWDG

    独立看门狗

    WWDG

    窗口看门狗

    当单片机因为电磁干扰四级或者程序设计不合理出现死循环时,看门狗可以及时复位芯片,保证系统稳定

    DAC

    数模转换器

    在IO口直接输出模拟电压,是ADC模数转换的逆过程

    SDIO

    SD卡接口

    SD卡是接口,可以用来读取SD卡

    FSMC

    可变静态存储控制器

    可变静态存储控制器,可以用来拓展内存,或者配置成其他总线协议,用于某些硬件操作

    USB OTG

    USB主机接口

    用OTG功能,可以让STM32作为USB主机去读取其他USB设备

  • 这是STM32F1整个系列所有外设,并不是所有型号拥有所有外设,就比如C8T6不含后四个外设
  • 具体含几个外设,需看对应型号的数据手册,看外设资源表
  • 总览

    英文缩写

    名称

    英文缩写

    名称

    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主机接口


    芯片命名规则

    芯片的系统结构

       芯片的引脚定义(数据手册上整理而来)

  •  对于使用芯片而言,引脚定义非常重要,看完引脚定义大概就知道该如何使用芯片
  • 上表中,标红色是电源相关的引脚,标蓝色是最小系统相关引脚,标绿色是IO口、功能口这些引脚
  • S代表电源,I代表输入,O代表输出,IO代表输入输出
  • I/O口电平代表可容忍电压,FT代表可容忍5V电压,没有FT的只能容忍3.3V电压,
  • 若没有FT需要装5V电压需安装电平转换装置
  • 主功能,上电后默认的功能,一般与引脚名相同,若不同,引脚的实际功能是主功能而不是引脚名功能
  • 默认复用功能,IO口上同时连接的外设功能引脚,这个配置IO口时还可以选择通用IO口还是复用功能
  • 重定义功能,当两个功能同时复用在了一个IO口上,确实需要用到这两个功能,把其中一个复用功能重映射到其他端口上,前提是这个重定义功能的表里有对应的端口
  • 依次来看引脚定义

    1.VBAT,备用电池供电的引脚,这个引脚可以接个3V的电池,当系统电源断电时,备用电池可以给内部的RTC时钟和大部分寄存器提供电源

    2.号引脚是IO口或者侵入检测或者RTC,IO口可以根据程序输出或读取高低电平,是最基本也是最常用的功能,侵入检测可以用来做安全保障的功能(eg:产品的安全性较高,可以在外壳加一些防拆的触点,然后接上电路到这个引脚上,若有人强行拆开设备,那触点断开,这个引脚电平变化,就会触发STM32的侵入信号,然后就会清空数据来保障安全),RTC引脚可以用来输出RTC校准时钟、RTC闹钟脉冲或者秒脉冲

    3.4.号是IO口或者接32.768KHz的RTC晶振

    5.6.号引脚接系统的主晶振,一般是8MHz,芯片内部有锁相环电路,可以对这个8MHz的频率进行倍频最终产生72MHz的频率,作为系统的主时钟

    7.号NRST是系统复位引脚,N代表它是低电平复位的

    8.9.号引脚是内部模拟部分的电源,比如ADC、RC震荡器等,VSS是负极接GND,VDD是正极接3.3V

    10~19号引脚是IO口,PA0兼具WKUP的功能,这个可以用于唤醒处于待机模式的STM32

    20.号引脚是IO口或者BOOT1引脚,BOOT引脚是用来配置启动模式的

    *推荐使用上表加粗的IO口,没有加粗的IO口可能需要配置,或者兼具其他功能

    21.22.号都是IO口

    23.24.35.36.47.48.号的VSS_1/_2/_3和VDD_1/_2/_3是系统的主电源口,同样的VSS是正极、VDD是负极

    *STM32内部采用了分区供电的方式,所以供电口会比较多,在使用时,把VSS都接GND,VDD都接3.3V即可

    25~33.号都是IO口

    34.37~40.号是IO口或者调试端口,调试端口是用来调试程序和下载程序的,这个STM32支持SWD和JTAG的两种调试方式。SWD需要两根线,分别是SWDIO和SWCLK;JTAG需要5根线,分别是JTMS、JTCK、JTDI、JTDO、NJTRST。使用STLINK下载调试程序,STLINK采用的是SWD的方式,所以只需占用PA13和PA14两个IO口,在使用SWD的调试方式时,剩下的PA15、PB3、PB4可以切换成为普通的IO口来使用,但需要在程序中配置

    41~43.号,45~46号都是IO口

    44.号BOOT0,用来做启动配置的


    STM32启动配置

     

  • 启动配置的作用就是指定程序开始运行的位置。
  • 一般情况下,程序都是在Flash程序存储器开始执行,某些情况下,可以让程序在别的地方开始执行,用以完成特殊功能
  • 接0就是接地的意思,接X就是无论接哪里,接1就是接3.3V电源+
  • 第二个模式01,用来做串口下载用的,系统存储器存的就是STM32一段BootLoader程序(作用是接收串口的数据,然后刷新到主闪存中)
  • *什么时候用到串口下载?把34.37~40号五个调试端口全部配置成了IO口,无法下载程序,这时使用串口下载;或者没有STLINK,也没有JLINK,那就可以用串口进行下载程序

  • 内置SRAM模式启动,是用来程序调试的,现阶段用的比较少
  • BOOT引脚的值是在上电复位后的一瞬间有效的,之后就随便了
  • 引脚定义中,20号引脚BOOT1和PB2是在同一个引脚上的,上电瞬间,是BOOT1的功能,当第四个时钟过之后,就是PB2的功能了
  • 想让STM32正常工作:首先需要把电源部分和最小系统部分的电路连接好,也就是表中标红色和标蓝色的部分

  • 单片机只有一个芯片是无法工作的,为其连接最基本的电路,这些最基本的电路称为最小系统电路

    最小系统电路

     跳线帽

  •  自己画板子可以参考这个电路,如果用STM32最小系统板设计电路的话最小系统板上已经包含了这些电路
  • STM32F103C8T6核心板原理图背面

     *以上是最基本的STM32的介绍,想要学好STM32还需阅读官方详细介绍

     自己在概念上的一些疑惑,通过搜索画了一张思维导图理解

     

    物联沃分享整理
    物联沃-IOTWORD物联网 » 【江科协】【1-2】STM32学习笔记:了解STM32简介

    发表评论