1. STM32F1系列型号的命名规则
2. STM32F1系列的所有外设
并不是所有型号都拥有全部的外设
【片上资源/外设(Peripheral)】
英文缩写 | 名称 | 英文缩写 | 名称 |
---|---|---|---|
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 | 可变静态存储控制器 |
NVIC和SysTick是位于Cortex-M3内核中的外设;其余的外设都位于内核之外
-
NVIC:内核中用于管理中断的设备。如配置中断优先级
-
SysTick:内核中的定时器。主要用来给操作系统提供定时服务
如果项目中上了系统,如FreeRTOS等,就需要SysTick提供定时来实现任务切换的功能;如果没有操作系统,可以用该定时器来实现Delay函数的功能
-
RCC:对系统的时钟进行配置;使能各模块的时钟
在STM32中,外设在上电的情况下默认是没有时钟的。如果没有时钟,操作外设是无效的,外设不会工作;因此在操作外设前必须先使能时钟
这种设计的目的是降低功耗
-
AFIO:完成复用功能端口的重定义;中断端口的配置
-
EXIT:配置后,当引脚有电平变化时,就可以触发中断,使CPU处理对应任务
-
TIM:STM32中最常用、功能最多的外设
【3种类型】
高级定时器:最复杂
通用定时器:最常用。可以完成定时中断、生成PWM波形等任务
基本定时器
-
ADC:12位的模数转换器。可以直接读取IO口的模拟电压值
-
DAC:数模转换器。可以在IO口直接输出模拟电压
-
DMA:帮助CPU完成搬运大量数据这样的繁杂任务
-
USART:同步/异步串口(两者都支持)
UART:异步串口
-
I2C、SPI:2种常用的通信协议。STM32内置了它们的控制器,可以用硬件来输出时序波形;用通用IO口来模拟时序波形
-
CAN:一般用于汽车领域的通信协议
-
USB:可以用来做模拟鼠标、模拟U盘等设备
-
RTC:在STM32内部完成年月日、时分秒的计时功能;可以接外部备用电池,即使掉电也能正常运行
-
CRC:一种数据的校验方式,用于判断数据的正确性
-
PWR:可以让芯片进入睡眠模式等状态,来达到省电的目的
-
BKP:当系统掉电时,仍可由备用电池保持数据
-
IWDG、WWDG:当单片机因为电磁干扰死机或者程序设计不合理出现死循环时,看门狗可以及时复位芯片,保证系统的稳定
-
SDIO:可以用来读取SD卡
-
FSMC:可以用于扩展内存,或配置成其他总线协议,用于某些硬件的操作
-
USB OTG:用OTG功能,可以让STM32作为USB主机去读取其它USB设备
3. STM32F1系列的系统构架
3.1 总线
(1) ICode、DCode总线
:主要用来连接Flash闪存
- ICode指令总线:加载程序指令
- DCode数据总线:加载数据。如常量和调试数据等
(2) System总线
:连接SRAM、FSMC
(3) AHB(先进高性能总线)系统总线
:挂载主要的(最基本的、性能比较高的)外设。如复位和时钟控制、SDIO
(4) APB(先进外设总线)
:用于连接一般的外设
由于AHB和APB的总线协议、总线速度、数据传送格式的差异,二者之间需要加两个桥接,来完成数据的转换和缓存
AHB的整体性能比APB高一些;APB2的性能又比APB1的性能高一些;APB2一般与AHB同频率,都是72MHz,APB1一般是36MHz
在使用的时候,个人一般感受不到APB2和APB1的性能差异。只需要知道某个外设是挂载到那个总线上的就可以了
-
APB2:连接外设中稍重要的部分。如GPIO端口、一些外设的1号外设等
TIM8和TIM1一样,也是高级定时器,所以也是重要的外设
-
APB1:连接次要一点的外设
(4) DMA总线
:将DMA连接到总线矩阵上
3.2 外设
-
Flash闪存:存储程序
-
SRAM:存储程序运行时的变量数据
-
DMA:完成诸如数据搬运等简单且需重复的工作。可以拥有和CPU一样的总线控制权,用于访问外设
当需要DMA搬运数据时,外设就会通过请求线发送DMA请求;然后DMA就会获得总线控制权,访问并转运数据。整个过程不需要CPU的参与,节省了CPU的资源
4. STM32F103C8T6芯片
4.1 简介
-
系列:主流系列-STM32F1
-
内核:ARM Cortex-M3
-
主频:72MHz
-
RAM:20K(SRAM)
这里的RAM是运行内存,实际的存储介质是SRAM
-
ROM:64K(Flash)
ROM是程序存储器,实际的存储介质是Flash闪存
-
供电:2.0~3.6V(标准3.3V)
51单片机是5V供电;USB输出的电压也是5V
5V不在该芯片的供电范围内,不能直接给STM32供电
如果使用的就是5V电压,需要再加一块稳压芯片,把电压降到3.3V,再给STM32供电
-
封装:LQFP48(48个引脚)