STM32理论入门

ARM

ARM处理器(Advanced RISC Machine)是英国Acorn有限公司设计的微处理器。
ARM11系列之后推出Cortex系列(针对嵌入式开发)。
特点:
1、体积小(略小于指甲盖)、低功耗、低成本、高性能
2、支持Thumb(16位)/ARM(32位)双指令集,能很好的兼容8位/16位器件
3、大量使用寄存器,指令执行速度更快
4、大多数数据操作都在寄存器中完成
5、指令长度固定
6、寻址方式灵活简单,执行效率高

用途:
最初的几代都用于游戏机、学习机,现在的几代可以应用于手机、电脑、智能通讯设备。

STM32

STM32产品系列由意法半导体(ST)开发,内核版本为ARM Cortex-M0 / M3 / M4。
具体的功能可以去该公司的官网去下载数据说明手册。

STM32命名
例如“STM32F103C8T6XXX”。
公司 - 系列 - 类型 - 子系列 - 引脚数 - 存储量 - 封装 - 工业温度 - 选项
STM - 32 - F - 1 03 - C - 8 - T - 6 - XXX
公司
ST意法半导体、M微控制器Microcontroller
系列
32——基于ARM的32位微控制器
8——8位微控制器
类型
F——通用型
S——简单型
L——低功耗型
H——高性能型
AL——汽车应用低功耗型
AF——汽车应用通用型
子系列
0——精简系列
1——增强系列
2——增强系列
3——增强系列
4——高性能系列
7——高性能系列

03子型号名

引脚数
C——48脚
R——64脚
V——100脚
Z——144脚
A——168脚
I——176脚
B——208脚
N——216脚
存储量
6——32KB
8——64KB
B——128KB
D——384KB
E——512KB
G——1MB
I——2MB
封装
H——BGA封装
T——LQFP封装
Y——WLCS64封装
工业温度
6——工业温度范围 -40°C~85°C
8——工业温度范围-40°C~105°C
选项
XXX——已编程的器件代号
TR——卷带式包装

存储器

存储器 缩写 类型 存储内容 读写延迟 掉电数据状态 写入次数 读取次数 写入条件 成本 容量
静态随机存储器 SRAM RAM 运行中的存储数据 无延迟速度快 消失 无限 无限 无条件
闪存程序存储器 FLASH ROM 用户程序 有延迟速度慢 保存 10万次 无限 先擦除

时钟

名称 缩写 频率 外部连接 功能 用途 特性
外部高速晶体振荡器 HSE 4~16MHz 4~16MHz晶体 系统时钟/RTC 成本高,温漂小
外部低速晶体振荡器 LSE 32kHz 32.768kHz晶体 带校准功能 RTC 成本高,温漂小
内部高速RC振荡器 HSI 8MHz 经出厂调校 系统时钟 成本低,温漂大
内部低速RC振荡器 LSI 40kHz 带校准功能 RTC 成本低,温漂大

工作模式

工作模式 关掉功能 唤醒方式
睡眠模式 ARM内核 所有内部、外部功能的中断/事件
停机模式 ARM内核 、内部所有功能、 PLL分频器、HSE 外部中断输入接口EXIT(16个I/O之一)、电源电压监控中断PVD、RTC闹钟到时、USB唤醒信号
待机模式 ARM内核 、内部所有功能、 PLL分频器、HSE、SRAM内容消失 NRST接口的外部复位信号、独立看门狗IWDG复位、专用唤醒WKUP引脚、RTC闹钟到时

ADC(数/模转换器)

STM32F103XX增强型内嵌2个12位的ADC,每个ADC共用多达16个外部通道,可以实现单次或扫描转换。

ADC接口上的其他逻辑功能包括

  1. 同步的采样和保持
  2. 交叉的采样和保持
  3. 单次采样

ADC可以使用DMA操作。

STM32理论入门_第1张图片

DMA

协助单片机完成数据传输。
灵活的7路通用DMA可以管理存储器、设备到存储器和存储器到设备的数据传输。
每个通道都有专门的硬件DMA请求逻辑,可以由软件触发每个通道。
支持的外设:定时器、ADC、SPI、I²C、USART。

I/O端口(input/output)

端口数量一般分为26、37、51、80,所有的I/O口可以映像到16个外部中断;
几乎所有的端口均可以兼容5V信号。

通用输入输出接口(GPIO)

每个GPIO引脚都可以由软件配置输出、输入或复用的外设功能端口。
多个GPIO引脚都与数字或模拟的复用外设共用,除了具有模拟输入功能的端口,所有的GPIO引脚都有大电流通过能力。
I/O引脚的外设功能可以锁定,以避免意外写入I/O寄存器。
在APB2上的I/O脚可达18MHz的翻转速度(电平转换)。

GPIO_Mode_AIN 模拟输入
GPIO_Mode_IN_FLOATING 浮空输入
GPIO_Mode_IPD 下拉输入
GPIO_Mode_IPU 上拉输入
GPIO_Mode_Out_PP 推挽输出
GPIO_Mode_Out_OD 开漏输出
GPIO_Mode_AF_PP 复用推挽输出
GPIO_Mode_AF_OD 复用开漏输出

调试模式

串行单线调试(SWD)和JTAG接口。(SWD简单,比较常用)

定时器(7个)

3个16位定时器,每个定时器多达4个用于输入捕获/输出比较/PWM或脉冲计数的通道和增量编码器输入。
1个16位带死区控制和紧急刹车,用于电机控制的PWM高级控制定时器
2个看门狗定时器(独立的和窗口型的)。
系统时间定时器:24位自减型计数器。
通用定时器(TIM2、TIM3、TIM4)
STM32F103XX增强型中,内置了3个可同步运行的标准定时器(TIM2、TIM3、TIM4)
每个定时器都有一个16位的自动加载递加/递减计数器、一个16位的预分频器和4个独立的通道,每个通道可用于输入捕获、输出比较、PWM和单脉冲模式输出。
任一标准定时器都能用于产生PWM输出。每个定时器都有独立的DMA请求机制。
高级控制定时器(TIM1)
可以被看成是分配到6个通道的三相PWM发生器。
四个对的通道可以用于:输入捕获、输出比较、产生PWM、单脉冲输出

定时器 计数器分辨率 计数器类型 预分频系数 产生DMA请求 捕获/比较通道 互补输出
TIM1 16位 向上、向下、向上/下 1~65536之间的任意整数 可以 4
TIM2、3、4 16位 向上、向下、向上/下 1~65536之间的任意整数 可以 4 没有

独立看门狗
独立看门狗基于一个12位的递减计数器和一个8位的预分频器;由一个内部独立的40kHz的RC振荡器提供时钟。
可运用于停机和待机模式。
用于在发生问题时复位整个系统或为应用程序提供超时管理。
窗口看门狗
窗口看门狗内有一个7位的递减计数器,并可以设置成自由运行。由主时钟驱动
用于发生问题时复位整个系统
系统时基定时器(嘀嗒定时器)
专用于实时操作系统。
特性:

  • 24位的递减计数器

  • 自动重加载功能

  • 当计数器为0时能产生一个可屏蔽系统中断

  • 可编程时钟源
    通信接口
    2个I²C接口(支持SMBus/PMBus)
    能够于多主模式或从模式,支持标准和快速模式。
    支持7位或10位寻址,可以使用DMA操作并支持SMBus总线2.0版/PMBus总线

    STM32理论入门_第2张图片
    3个USART接口(支持ISO7816接口,LIN,IrDA接口和调制解调控制)
    通用同步/异步收发器(USART)
    USART1接口通信速率可达4.5M位/秒,支持IrDA SIR ENDEC传输编解码、兼容ISO7816的智能卡并提供LIN主/从功能。
    所有USART接口都可以使用DMA操作。

  • USART是通用同步/异步收发器(带同步时钟线USART_CK)

  • UART是通用异步收发器(没有同步时钟线)

  • 但最常用的是异步模式,同步模式很少用

  • USART只是一种协议方式,根据不同电平方式分为RS232和RS485等
    STM32理论入门_第3张图片
    STM32理论入门_第4张图片
    2个SPI接口(18M位/秒)(串行外设接口)

  • SPI用于板级设备间通信

  • 有主从两种模式

  • 可全双工和半双工

  • 最大速度18M/s

  • 用3个预分频器来设置8种频率

  • 支持SD卡的读写模式

  • 至此DMA

SPI特点:

  • 协议稳定
  • 速度较快
    STM32理论入门_第5张图片
    CAN接口(2.0B主动)(控制器区域网络)
    CAN应用于汽车、工业的智能设备通信
    特点:通信速度快,距离远、稳定、自动查错。
  • 有一个CAN总线
  • 位速度最高1M位/S
  • 11位标识符
  • 29位扩展帧
  • 3个发送邮箱
  • 2个FIFO
  • 3级14个滤波器
    STM32理论入门_第6张图片
    USB2.0全速接口(通用串行总线)
    用于做PC机的从设备,如鼠标、键盘、打印机
  • 1个USB接口
  • 设备控制器
  • 支持全速2.0,12M位/S
  • 有待机和唤醒功能
  • 由内部PLL倍频器提供时钟
  • 时钟必须由外部高速晶振产生
    STM32理论入门_第7张图片

CRC校验

CRC(循环冗余校验)计算单元

  • 用于数据正确性校验
  • 由一个32位的数据字产生
  • 可应用在FALSH检测
  • 可用于软件签名及对比
    STM32理论入门_第8张图片

芯片ID

  • 96位编码(24位十六进制)
  • 每个芯片编码是唯一的

作用:

  • 用来作为产品序列号
  • 用来作为密码,提高安全性
  • 用来保护程序的不可复制

接口定义

STM32理论入门_第9张图片
STM32理论入门_第10张图片
STM32理论入门_第11张图片
STM32理论入门_第12张图片

最小系统电路图

STM32理论入门_第13张图片
K1闭合时运行用户的程序
K1断开且K2闭合时运行BOOTLOADER
K3按下会使STM32芯片复位

启动模式

BOOT1 BOOT2 启动模式 说明
0/1 0 主闪存存储器FLASH ISP 主闪存存储器被选为启动区域
0 1 系统存储器BOOTLOADER 系统存储器被选为启动区域
1 1 内置SRAM RAM ISP 内置SRAM被选为启动区域

FLASH ISP是从FLASH中启动,运行用户程序(正常启动)
BOOTLOADER是ST公司制作了一段用于ISP下载的程序,用户不可修改
RAM ISP 是从SRAM中启动,主要用于调试阶段的下载。下载速度快,但断电丢失。

在keil中编程

STM32理论入门_第14张图片
CMSIS:内核驱动程序
Lib:内部功能的基本函数库
Startup:单片机启动程序
User:用户程序(包括主函数)
Basic:内部功能的驱动程序
Hardware:外部硬件的驱动程序
STM32理论入门_第15张图片

你可能感兴趣的:(STM32理论入门)