1. STM32 是 ST 公司基于 ARM Cortex-M 内核开发的 32 位微控制器(MCU)。这里的 STM 中的 ST 指的是 ST 公司,而 M 是微控制器单词的首字母,32 即指 32 位。 

2. 本次课程采用的是 STM32F1 系列,属于 Mainstream ,内核为 Cortex-M3 。ARM 公司设计 ARM 内核,半导体厂商完善内核周边电路并产生芯片。

3. 绿色的部分是 ARM 公司设计的,右边的部分是 ST 公司设计的外围电路。

4. STM32F103C8T6:

① 系列:主流系列 STM32F1 

② 内核:ARM Cortex-M3 

③ 主频:72MHz 

④ RAM:20K(指运行内存,这是用于存储临时数据和程序运行时的变量,实际存储介质是 SARM )

⑤ ROM:64K(指程序存储器,实际存储介质是 Flash 闪存)

⑥ 供电:2.0-3.6V(标准 3.3V),区别于 51 单片机的 5V 供电

⑦ 封装:LQFP48,这表示芯片采用的是 LQFP 封装形式,48 个引脚

5. 片上资源 / 外设:

(1) NVIC:内核里面用于管理中断的设备,例如配置中断优先级。

(2) SysTick:用来给操作系统提供定时服务的,因为 STM32 可以加入 FreeRTOS、UCOS 等操作系统,利用 SysTick 提供定时进行任务切换功能(本次课用 SysTick 完成 Delay 函数功能)。

(3) RCC:复位和时钟控制,可以对系统的时钟进行配置,还使能各模块的时钟。在 STM32 中,外设上电后是默认没有时钟的,无时钟,外设就无效。因此,在操作外设之前必须使能其时钟。

(4) GPIO:通用的 IO 口,进行点灯,读取按键等

(5) AFIO:是复用 IO 口,完成复用功能端口的重定义,还有中断端口的配置。

(6) EXIT:配置好外部中断后,当引脚有电平变化时,就可以触发中断,让 CPU 来处理任务。

(7) TIM 定时器:分为高级定时器、通用定时器、基本定时器,不仅可以完成定时中断的任务,还可以完成测频率,生成 PWM 波形,配置为专用的编译器接口。

(8) ADC:模数转换器,这个 STM32 内置了 12 位的 AD 转换器,可以直接读取 IO 口的模拟电压值,无需外置。

(9) DMA:直接内存访问,可以帮助 CPU 搬运大量数据这样的繁杂任务。

(10) USART:同步 / 异步串口通信,既支持异步串口,也支持同步串口。

(11) I2C / SPI :两种 STM32 常见的通信协议。

(12) RTC:实时时钟,在 STM32 完成时、分、秒的计时功能,还可以接外部电池,即使掉电也能正常运行。

(13) CRC:一种数据的检验方式,用于判断数据的正确性。

(14) IWDG / WWDG:当单片机因电磁干扰死机或者程序设计不合理出现死循环时,看门狗可以及时复位,保证系统的稳定。

(15) DAC:数模转换器,它可以在 IO 口直接输出模拟电压

(16) OTG:让 STM32 作为 USB 主机去读取其他 USB 设备。

6. 命名规则:

① 举例:STM32F103RCT6:64 引脚,256K 字节内存,LQFP 封装,-40℃ – 85℃ 。

7. 系统结构:

(1) Cortex – M3 处理器核心:

  • 这是芯片的中央处理单元(CPU),负责执行指令。所有的数据处理和程序执行都由它完成。
  • (2) DMA:

  • DMA 是一种允许外设直接与内存通信的技术,从而减少 CPU 的负担,图中有两个 DMA 通道(DMA1 和 DMA2),它们可以进行数据传输。
  • (3) AHB:

  • AHB总线用于连接高速外设和内存,它控制与外部设备的高速数据传输,包括 Flash、SRAM、GPIO 等。
  • (4) Flash 和 SRAM:

  • Flash存储器:用于存储程序代码,可以读取和执行。它是非易失性的,掉电后不会失去数据,在嵌入式中非常常见。
  • SARM存储器:用于存储临时数据,易失性存储器,当电源关闭时数据会流失。
  • (5) APB:

  • APB总线连接较低速的外设,如GPIO、USART、I2C等。它的传输速度相对较慢,适用于那些不需要高速传输的外设。
  • (6) 代码执行(ICode & DCode):

  • ICode 和 DCode 用来连接 Flash 闪存,Flash 存放的是我们编写的程序,ICode 用于加载程序指令,DCode 用于加载数据如常数和调试数据
  • 8. 引脚定义:

    (1) 红色是电源相关的引脚,蓝色是最小系统相关的引脚,绿色是 IO口/功能口相关的引脚。

    (2) S代表电源,I/O 代表输入输出,I/O 电平代表所能容忍的电压,FT代表能容忍 5V 。

    (3) 默认复用功能是指 STM32F103C8T6 芯片上的许多I/O引脚在默认情况下,既可以作为普通的输入/输出口(GPIO)使用,也可以与外部设备的功能进行复用。具体来说,这些引脚在物理上已经连接到外设(如USART、SPI、I2C、ADC等),但通过配置,可以选择是否将它们用作这些外设的引脚,或者仅作为普通的数字I/O引脚来使用。

    (4) 重定义功能是指如果有 2 个功能同时复用在了一个 IO 口上,可以把其中一个复用功能重映射到其他端口上。

    (5) 引脚介绍:

  • VBAT:备用电池供电引脚,当系统电源断电时,备用电池可以给内部的RTC时钟和备份存储器提供电源。
  • 2 号引脚:IO口或者侵入检测或者RTCIO口可以根据程序输出或读取高低电平侵入检测可以用来做安全保障的问题,若有人强行拆开设备,触电会断开,这个引脚的电平发生变化,就会触发STM32的侵入信号,然后就会清空数据保证安全。
  • 3、4 号引脚:IO口或者接 32.768KHz 的RTC晶振
  • 5、6 号引脚:接系统的主晶振,一般是 8MHz 的,芯片内部有锁相环电路,对 8MHz 进行倍频形成 72MHz
  • 7 号引脚:系统复位引脚,N 代表低电平电位。
  • 8、9 号引脚:内部模拟部分的电源,比如:ADC、RC 震荡器等,VSS 是负极,接 GND,VDD 是正极,接 3.3V
  • 10 – 19 号引脚:都是 IO 口,10 号引脚还兼具了 WKUP 功能,用于唤醒处于待机模式的 STM32 。
  • 20 号引脚:IO 口或者 BOOT 引脚,BOOT 用来配置启动模式。
  • 21、22、25 – 33,41-43,45,46 号引脚都是 IO 口。
  • 23、24 号引脚:系统的主电源口
  • 9. 启动配置:

    (1) 在 STM32F103 微控制器中,可以通过 BOOT0 和 BOOT1 引脚的组合状态选择三种不同的启动模式。

    (2) 这段话的意思是:系统恢复后,有一个时钟信号(叫SYSCLK),它的第 4 个上升沿会发生变化。系统的启动过程涉及一个叫 BOOT 的引脚,恢复过程中,这个引脚的值会被锁定,也就是说它不会发生变化。用户可以设置另一个引脚 BOOT1 ,来选择系统恢复后要进入的启动模式。BOOT0 的引脚状态也会影响恢复后的启动模式,但它只有在 BOOT 引脚配置正确时才有效。

    (3) 接1 指 3.3V 电源正的意思,一般情况下,程序是在 Flash 程序存储器开始执行。

    作者:四谎真好看

    物联沃分享整理
    物联沃-IOTWORD物联网 » 第一章 STM32 综述

    发表回复