STM32简介和安装

STM32简介

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

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

•STM32功能强大、性能优异、片上资源丰富、功耗低,是一款经典的嵌入式微控制器

片上资源/外设

NVIC 和 SysTick 是位于Cortex-M3内核里面的外设

英文缩写 名称 英文缩写 名称
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,嵌套向量中断控制器,是内核里面用于管理中断的设备,比如配置中断优先级

SysTick,系统滴答定时器,内核里面的一个定时器,主要用来给操作系统提供定时服务,STM32是可以加入操作系统的,比如FreeRTOS、UCOS等,如果用了这些操作系统,就需要SysTick提供定时来进行任务切换的功能。如果不需要操作系统,可以用这个定时器完成Delay函数的功能。

RCC,复位和时钟控制,可以对系统的时钟进行配置,还有使能各模块的时钟。在STM32中,其它的这些外设在上电的情况下默认是没有时钟的,不给时钟的情况下,操作外设是无效的,外设也不会工作,这样的目的是降低功耗。所以,在操作外设之前,必须要先使能它的时钟。

GPIO,通用IO口,可以有用GPIOl来点灯、读取按键等,这也是单片机最基本的一个功能。

AFIO,复用IO口,可以完成复用功能端口的重定义,还有中断端口的配置。

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

TIM,定时器,这也是整个STM32最常用、功能最多的外设。TIM分为高级定时器、通用定时器、基本定时器三种类型。高级定时器最复杂,常用的是通用定时器,这个定时器不仅可以完成定时中断的任务,还可以完成测频率、生成PWM波形、配置成专业的编码器接口等功能。像PWM波形,就是电机驱动、舵机驱动最基本的要求了。

ADC,模数转换器,这个STM32内置了12位的AD转换器,可以之间读取IO口的模拟电压值,无需外部连接AD芯片,使用方便。

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

USART,同步/异步串口,我们平时用的USART是异步串口的意思,这里的USART是既支持异步串口,也支持同步串口。当然我们实际还是用异步串口比较多哈

I2C和SPI是非常常用的两种通信协议,STM32内置了它们的控制器,可以用硬件来输出时序波形,使用起来更高效。当然用通用IO口来模拟时序波形也是没有问题

命名规则

系统结构

AHB系统总线用于挂载主要的外设,AHB的意思是先进高性能总线,挂载的一般是最基本的或者是性能比较高的外设。比如复位和时钟控制这些最基本的电路。

APB2和APB1两个外设总线,APB意思是先进外设总线,用于连接一般的外设。

APB2的性能又比APB1高一些。

DMA用于搬运数据,DMA通过DMA总线连接到总线矩阵上。可以拥有和CPU一样的总线控制权,用于访问这些外设小弟。

当需要DMA搬运数据,外设小弟就会通过请求线发送DMA请求,然后DMA就会获得总线控制权,访问并转运数据,整个过程不需要CPU的参与,省下了CPU的时间用来干其他的事情。