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的时间用来干其他的事情。