目录

  • 认识STM32
  • 命名规则
  • ARM
  • STM32F103C8T6
  • 片上资源
  • 系统结构
  • 引脚定义
  • 启动配置
  • 最小系统电路
  • 认识STM32

    STM32:ST指ST公司、M指Microcontroller(微控制器)
    STM32是ST公司基于ARM Cortex-M内核开发的32位微控制器。
    STM32功能强大、性能优异、片上资源丰富、功耗低、是一款经典的嵌入式微控制器。


    如上图,STM主要有四个系列,高性能系列,主流系列,超低功耗系列和无线通信系列。
    上面的介绍,STM32F2有398的CoreMark,就是内核跑分,跑分越高性能越好。还要120MHz的主频。右上角的STM32H7是一个双核的微控制器,可以看到他有两个主频的核心。

    命名规则


    ARM

    ARM既指ARM公司,也指ARM处理器内核
    ARM公司是全球领先的半导体知识产权(IP)提供商,全世界超过95%的智能手机和平板电脑都采用ARM架构
    ARM公司设计ARM内核,半导体厂商完善内核周边电路并生产芯片

    ARM公司根据不同的应用场景生产出了不同系列的内核:
    图中ARM7,ARM9,ARM11是以前生产的老版本的内核,这些型号称为经典的ARM处理器。在ARM11之后为了迎合时代的发展,更改了命名方式,推出了Cortex系列的内核。 R和M系列主要应用在手机领域,A系列主要应用在高端领域。像苹果的,联发科等一些公司的手机芯片都是使用的ARM架构进行设计的。
    R的意思是RealTime,主要面向实时性很高的场景,例如硬盘控制器等。R系列和M系列发展较A系列就慢很多。

    STM32F103C8T6

    系列:主流系列STM32F1
    内核:ARM Cortex-M3
    主频:72MHz
    RAM:20K(SRAM)
    ROM:64K(Flash)
    供电:2.0~3.6V(标准3.3V)
    封装:LQFP48

    片上资源

    片上资源即外设(peripheral)

    NVIC:管理中断,如配置中断优先级等。
    SysTick:给操作系统提供定时服务。
    RCC:使能外设时钟。
    AFIO:复用功能端口重定义,及中断端口配置。
    CAN:多应用于汽车领域
    RTC:在STM32内部完成年月日、时分秒的计时功能,可接外部备用电池,掉电也可使用。
    CRC:判断数据的正确性。
    PWR:电源可睡眠,使功耗降低。

    ……
    上图是STM32F1系列的所有外设,并不是所有型号都拥有全部外设。
    具体型号的外设要在手册中去找,如下图

    系统结构


    上图是STM32F103C8T6这个芯片的系统结构。

    Cortex-M3内核,内核引出三条总线;分别是ICode指令总线、DCode数据总线、System系统总线。其中ICode和DCode主要用以连接Flash闪存,Flash中存储的内容为我们所编写的程序。ICode指令总线就是用以加载指令程序的,DCode数据总线是用来加载数据的,比如常量和调试参数等。System系统总线连接其他东西上,如SRAM(用于存储程序运行时的变量数据)、FSMC(很少会用)等。

    AHB(先进高性能总线) 系统总线用于挂在主要外设,挂载的一般是最基本的或者是性能比较高的外设,如复位和时钟控制(RCC)、SDIO、两个桥接(APB1和APB2)等。APB(先进外设总线),用于连接一般的外设。因为AHB与APB在总线协议、总线速度、数据传送格式之间的差异,故中间需要加两个 桥接,完后数据的转换和缓存。APB2(一般与AHB同频)的性能比APB1高一些,故连接一些外设中稍微重要的部分,如GPIO、外设的一号(USART1、TIM1、ADC1……)。APB1则连接DAC、外设的其它号(USART2、TIM2……)。实际使用起来没什么区别,没有哪个更重要。

    DMA(直接内存访问),可理解为内核CPU小秘书,若是有一些大量搬运数据的工作,为了减少CPU的工作量,给其它工作腾出时间,就将此工作交给DMA来做。
    DMA主要用来做如数据搬运一样简单且反复要做的事情,其通过DMA总线连接到总线矩阵上,可以拥有和CPU一样的控制权,用于访问其它外设;当需要DMA搬运数据时,外设就会通过请求线发送DMA请求,然后DMA就会获得总线控制权,访问并转运数据,整个过程不需
    要CPU的参与,省下CPU的时间来干其它事。

    引脚定义

    砖红色: 与电源相关的引脚;有FT则表示其可忍受5V电压,如果没有FT,需要5V的电平就需要加装电平转换电路。
    蓝色: 与最小系统相关的引脚
    绿色: I/O口、功能口相关引脚

    表头上面有主功能和引脚名称,一般主功能和显示的功能和引脚名称是相同的。若不同,引脚的实际功能是主功能而不是引脚名称的功能。主功能也是上电后默认的功能。
    默认复用功能:是IO口同时连接的外设功能(串口,中断等)引脚,在配置IO时可以选择是通用IO口(主功能)还是复用功能。即是使用主功能还是使用外设功能。
    重定义功能:其作用是如果有两个功能同时复用在一个IO上,而且确实需要这两个功能,就可以把其中一个复用功能重映射到其他端口上(前提是,重定义功能的表里有对应的端口)。

    VBAT: 备用电池供电引脚,其可接一个3V的电池,当系统电源断电时,备用电池可以给内部的RTC时钟和备份寄存器提供电源。
    2号引脚: 是IO口或者侵入检测或RTC,IO口可根据程序输出或读取高低电平,是最基本也是最常用功能;侵入检测,当产品安全性比较高时,可以做一些防拆的触点,然后接到这个引脚上,若强行拆开设备,引脚断开,电平发生变化就会触发芯片的侵入信号,然后清空数据来保证安全。;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兼具Wake-up功能,用于唤醒处于待机模式的STM32.
    20号引脚: 为IO口或者BOOT1引脚,BOOT引脚是用来配置启动模式的。
    23、24号: 的VSS_1(负极)和VDD_1(正极)是系统的主电源口。后面的VSS_2和VDD_2、VSS_3和VDD_3都是系统的主电源口,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下载调试程序,在SWD调试方式时,PA15、PB3、PB4可以切换回普通的IO使用,但是要在程序中进行配置,不配置的话默认是不会为IO口的。
    41-43及45~46: 都是IO口
    44号: BOOT0做启动配置,和BOOT1一样。

    启动配置

    启动配置的作用就是指定程序开始运行的位置,一般情况下,程序都是在Flash程序存储器开始执行;当然在某些情况下,需要程序在别的地方开始执行,用来完成特殊的功能。这个别的地方并不是指程序内部的某条语句。
    在所述STM32系列中可以通过配置BOOT0和BOOT1引脚,来选择三种启动模式。
    BOOT0接0(即接地): 此时BOOT1无论接什么,启动模式都为主闪存存储器模式。
    BOOT1接地,BOOT0接1(即接3.3V电源): 图中说是使用系统存储器来下载程序,其实就是使用串口下载。系统存储器中存的就是STM32中的一段BOOTLoader程序。其作用就是接收串口的数据,然后刷新到主闪存中,就可以使用串口下载程序。
    当我们将引脚定义表中5个下载程序的引脚全部配置成IO口,那么无法使用STLink或者JLink下载程序了,此时就必须使用串口下载程序。
    BOOT0接1,BOOT1接1: 配置内置SRAM启动,主要用来进行程序调试。用的比较少。
    表6 最后一句话的意思为,BOOT引脚的值是在上电复位后的一瞬间是有效的,之后就随意了。引脚定义表中,PB2和BOOT1是同一个引脚,也就是上电后的一瞬间,是BOOT1功能,第四个时钟过后就是PB2的功能了。

    最小系统电路


    VBAT引脚如果有需要可以接到3.3V的备用电池正极上,不需要直接悬空或者接3.3V就行。

    如果需要RTC功能的话,需要将一个32.768KHz晶振接到PC15,PC15号引脚上。OSC32为32.768KHz晶振的意思,32768(2的15次方),内部RTC电路经过2^15分频,就可生成1s的时间信号。

    启动配置就是用来配置BOOT引脚的。

    作者:Hungry_11

    物联沃分享整理
    物联沃-IOTWORD物联网 » STM32简介

    发表回复