系列文章目录
STM32单片机系列专栏
C语言术语和结构总结专栏
文章目录
1. 基本参数
2. 片上资源(外设)
3. STM32系列命名规则
4. 系统结构
5. 引脚定义
6. 启动配置
7. 最小系统电路
8. 型号分类和缩写
1. 基本参数
STM32F103C8T6
系列:主流系列STM32F1
内核:ARM Cortex-M3
主频:72MHz
RAM:20K(SRAM)(运行内存)
ROM:64K(Flash)(程序储存器)
供电:2.0~3.6V(标准3.3V)
封装:LQFP48(48个引脚)
2. 片上资源(外设)
英文 | 名称 | |
NVIC | 嵌套向量中断控制器 | 嵌套向量中断控制器,负责管理和处理中断,允许动态优先级和中断嵌套。 |
SysTick | 系统滴答定时器 | 系统定时器,可以用作操作系统的心跳定时器或者提供一个简单的不依赖外部定时器的延时功能。 |
RCC | 复位和时钟控制 | 复位和时钟控制器,控制和管理微控制器的时钟分配,包括系统时钟、外设时钟以及时钟源的选择和配置。 |
GPIO | 通用IO口 | 通用输入输出端口,用于数字信号的输入和输出。 |
AFIO | 复用IO口 | 可重映射的输入输出端口,可以配置GPIO引脚以用于不同的外设功能。 |
EXTI | 外部中断 | 外部中断接口,允许外部或内部事件触发中断。 |
TIM | 定时器 | 定时器,用于计时、计数、产生PWM波形等功能。 |
ADC | 模数转换器 | 模拟到数字转换器,将模拟信号转换为数字信号进行处 |
DMA | 直接内存访问 | 直接内存访问控制器,允许外设直接读写内存,减轻CPU负担。 |
USART | 同步/异步串口通信 | 通用同步/异步接收发射器,用于串行通信。 |
I2C | I2C通信 | 用于芯片间通信的串行总线。 |
SPI | SPI通信 | 串行外设接口,用于高速串行通信。 |
CAN | CAN通信 | 控制器局域网,用于汽车和工业控制中的网络通信。 |
USB | USB通信 | 通用串行总线,用于连接USB设备。 |
RTC | 实时时钟 | 实时时钟,保持时间计数即使在主电源断电的情况下。 |
CRC | CRC校验 | 循环冗余校验,用于检测数据在传输或存储过程中的错误。 |
PWR | 电源控制 | 电源控制外设,管理电源和睡眠模式。 |
BKP | 备份寄存器 | 备份寄存器,通常用于存储关键数据,即使在微控制器断电时也会被保留。 |
IWDG | 独立看门狗 | 独立看门狗定时器,用于系统恢复,防止系统挂起。 |
WWDG | 窗口看门狗 | 窗口看门狗定时器,用于系统恢复,比IWDG更复杂的行为设置。 |
DAC | 数模转换器 | 数字到模拟转换器,将数字信号转换为模拟信号输出。 |
SDIO | SD卡接口 | 安全数字输入输出,用于SD卡通信。 |
FSMC | 可变静态存储控制器 | 灵活的静态存储器控制器,用于连接外部存储如SRAM、PSRAM、NOR/NAND内存。 |
USB OTG | USB主机接口 | USB设备即插即用,使设备可以充当主机或设备角色。 |
3. STM32系列命名规则
4. 系统结构
对于系统结构,STM32的CPU核心基于ARM Cortex-M3架构。Icode是指令总线,Dcode是数据总线,Icode和Dcode是用来连接flash闪存的,flash中储存的就是程序,Icode用来加载程序指令,Dcode用来加载数据。system为系统总线,连接到SRAM(静态随机存取内存,用于程序的运行时数据存储)和FSMC(外部存储控制器,用于连接外部存储设备)
AHB(先进高性能总线)用于连接高速的内核和某些高速外设,通过两个桥接连接APB(先进外设总线)用于连接较低速的外设。因为AHB和APB的总线协议和总线速度,还有数据传送格式的差异,所以需要加两个桥接,来完成数据的转换和缓存。
DMA提供了高效的数据传输方式,无需CPU介入就能在内存和外设之间传输数据。
5. 引脚定义
6. 启动配置
启动模式选择表
BOOT1 | BOOT0 | 启动模式 | 说明 |
---|---|---|---|
X | 0 | 主闪存存储器 | 代码从主闪存存储器的用户程序区域开始执行 |
0 | 1 | 系统存储器 | 代码从系统存储器开始执行,通常是用于内部的引导加载程序 |
1 | 1 | 内嵌SRAM | 代码从内嵌SRAM开始执行 |
- 主闪存存储器: 这是最常用的启动模式,用于执行用户存放在主闪存区的应用程序代码。
- 系统存储器: 这个模式通常包含了厂商提供的引导程序,可用于系统的固件升级,也可以作为使用串口下载。
- 内嵌SRAM: 这个模式允许直接从SRAM执行代码,可以用于开发阶段的调试。
当系统复位时,系统时钟会在4个时钟周期内选择BOOT1和BOOT0引脚的配置来确定启动模式。如果需要在系统运行中动态修改启动模式,就需要改变这两个引脚的状态。
“X”代表“不关心”的状态,意味着在BOOT0为0的情况下,BOOT1的状态不会影响启动模式的选择,因为不管BOOT1是0还是1,系统都会从主闪存启动。
7. 最小系统电路
仅靠一个单片机芯片,无法实现功能,所以需要设计一个确保微控制器能够正常上电并运行的最基础电路配置。
晶振电路
首先一个8mhzd主时钟晶振,stm32的主晶振一般都是8mhz,8mhz经过内部锁循环倍频,得到72mhz的主频。两个引脚连接到stm32的5,6号引脚,另外还需要接两个20pf的电容,作为启震电容,电容另一端接地。
复位电路
NRST: 微控制器的复位引脚,用于重启微控制器,使其从初始状态开始运行。它是低电平复位,复位电路上电的瞬间,电容没有电,电源通过电阻向电容充电,此时电容呈现短路状态,所以nrst就会产生低电平,电容充满电后电容相当于断路,这时nrst上拉为高电平。
R1: 上拉电阻,值为10kΩ。它确保在没有外部复位信号的情况下,NRST引脚保持高电平状态,微控制器不会进入复位状态。
C3: 与NRST引脚相连的去耦电容,0.1uF,它帮助滤除由外部噪声引起的误触发复位事件,确保复位行为是确定进行的。
调试接口
用于串行线调试(SWD)接口的引脚,用于程序调试。
8. 型号分类和缩写
这部分也是建立工程文件时启动文件的选择方式。
缩写(启动文件) | 类型 | Flash容量 | 型号 |
---|---|---|---|
LD_VL | 小容量产品线低密度 | 16~32K | STM32F100 |
MD_VL | 中容量产品线低密度 | 64~128K | STM32F100 |
HD_VL | 大容量产品线低密度 | 256~512K | STM32F101/102/103 |
LD | 小容量产品 | 16~32K | STM32F101/102/103 |
MD | 中容量产品 | 64~128K | STM32F101/102/103 |
HD | 大容量产品 | 256~512K | STM32F101/102/103 |
XL | 加大容量产品 | 大于512K | STM32F101/102/103 |
CL | 互联型产品 | - | STM32F105/107 |