文章目录
- [💙 STM32F103C8T6 命名解读](#💙 STM32F103C8T6 命名解读)
- [💙 STM32 系列主要片上资源 / 外设速查表](#💙 STM32 系列主要片上资源 / 外设速查表)
- [💙 STM32 引脚分布](#💙 STM32 引脚分布)
-
- [STM32F103C8T6 (LQFP48) 引脚详细定义表 (截自数据手册 3.引脚定义-表5)](#STM32F103C8T6 (LQFP48) 引脚详细定义表 (截自数据手册 3.引脚定义-表5))
- [💙 STM32 系统结构 (截图自参考手册 2.1)](#💙 STM32 系统结构 (截图自参考手册 2.1))
- [💙 STM32F103C8T6 最小系统电路](#💙 STM32F103C8T6 最小系统电路)
💙 STM32F103C8T6 命名解读
系列 :主流系列STM32F1
内核 :ARM Cortex-M3
主频 :72MHz
RAM :20K(SRAM)
ROM :64K(Flash)
供电 :2.0~3.6V(标准3.3V)
封装:LQFP48
💙 STM32 系列主要片上资源 / 外设速查表
| 英文缩写 | 名称 | 人话解释 |
|---|---|---|
| NVIC | 嵌套向量中断控制器 | 管理芯片中断,决定哪个任务/事件优先被处理 |
| SysTick | 系统滴答定时器 | 芯片自带的简易定时器,常用于延时、计时、系统心跳 |
| RCC | 复位和时钟控制 | 给外设开关时钟、管理芯片复位,是所有外设工作的总开关 (操作外设之前必须先使能其时钟) |
| GPIO | 通用IO口 | 通用输入输出引脚,用来控制LED、读取按键、输出高低电平 |
| AFIO | 复用IO口 | 让同一个引脚切换不同功能,比如既当普通引脚,又当串口引脚 |
| EXTI | 外部中断 | 引脚电平变化时触发中断,不用一直循环检测引脚状态 |
| TIM | 定时器 | 用于计时、生成PWM波、计数等,是芯片的时间管理工具 |
| ADC | 模数转换器 | 把光敏、温湿度等模拟电压信号,转换成单片机能识别的数字量 |
| DMA | 直接内存访问 | 数据搬运不用CPU参与,解放CPU,让数据传输更高效 |
| USART | 同步/异步串口通信 | 最常用的串口通信方式,和电脑、蓝牙、传感器收发数据 |
| I2C | I2C通信 | 两根线就能通信,适合短距离连接OLED屏、传感器等小设备 |
| SPI | SPI通信 | 高速同步通信,用来连接Flash、显示屏、传感器等设备 |
| CAN | CAN通信 | 工业级稳定通信,多用于汽车、工控设备之间的数据传输 |
| USB | USB通信 | 支持USB协议,可用于数据传输、设备连接识别等功能 |
| RTC | 实时时钟 | 独立计时的时钟,断电也能走时,用来记录时间、设置闹钟 |
| CRC | CRC校验 | 数据校验工具,检测传输、存储的数据有没有出错 |
| PWR | 电源控制 | 管理芯片的低功耗模式,降低耗电,延长设备续航 |
| BKP | 备份寄存器 | 掉电也能保存数据,用来记录设备的关键状态信息 |
| IWDG | 独立看门狗 | 独立时钟监控,程序跑飞/卡死时自动复位芯片 |
| WWDG | 窗口看门狗 | 更灵活的程序监控,有时间窗口限制,故障时复位芯片 |
💙 STM32 引脚分布
参考数据手册 第三部分:引脚定义
除了图上标注的 11 个特殊引脚外,还有 4 组一字母作为组编号的普通引脚
- GPIOA:PA0 ... PA15
- GPIOB:PB0 ... PB15
- GPIOC:PC13,PC14,PC15
- GPIOD:PD0,PD1
STM32F103C8T6 (LQFP48) 引脚详细定义表 (截自数据手册 3.引脚定义-表5)
🔴 红色:电源 / 晶振 / 复位 / 启动配置
🟠 橙色:模拟电源(ADC)
🔵 蓝色:PA 口引脚
🟣 紫色:PB 口引脚
⚫ 灰色:数字电源 / 地
| 引脚号 | 引脚名称 | 类型 | I/O电平 | 主功能 | 默认复用功能 | 重定义功能 | 备注 |
|---|---|---|---|---|---|---|---|
| 1 | VBAT | S | - | 备用电源 | - | - | RTC/备份寄存器掉电供电 |
| 2 | PC13-TAMPER-RTC | I/O | 3.3V | PC13 | TAMPER-RTC | - | 侵入检测、RTC时钟输入 |
| 3 | PC14-OSC32_IN | I | 3.3V | PC14 | OSC32_IN | - | 32.768kHz晶振输入 |
| 4 | PC15-OSC32_OUT | O | 3.3V | PC15 | OSC32_OUT | - | 32.768kHz晶振输出 |
| 5 | OSC_IN | I | 3.3V | OSC_IN | - | - | 外部8MHz晶振输入 |
| 6 | OSC_OUT | O | 3.3V | OSC_OUT | - | - | 外部8MHz晶振输出 |
| 7 | NRST | I | 3.3V | 复位引脚 | - | - | 低电平复位,内置上拉 |
| 8 | VSSA | S | - | 模拟地 | - | - | ADC模拟地,独立布线 |
| 9 | VDDA | S | - | 模拟电源 | - | - | ADC供电,3.3V |
| 10 | PA0-WKUP | I/O | 3.3V | PA0 | WKUP、USART2_CTS、ADC12_IN0、TIM2_CH1_ETR | - | 唤醒引脚,可触发外部中断 |
| 11 | PA1 | I/O | 3.3V | PA1 | USART2_RTS、ADC12_IN1、TIM2_CH2 | - | 通用IO+ADC+定时器通道 |
| 12 | PA2 | I/O | 3.3V | PA2 | USART2_TX、ADC12_IN2、TIM2_CH3 | - | 串口2发送引脚 |
| 13 | PA3 | I/O | 3.3V | PA3 | USART2_RX、ADC12_IN3、TIM2_CH4 | - | 串口2接收引脚 |
| 14 | PA4 | I/O | 3.3V | PA4 | SPI1_NSS、USART2_CK、ADC12_IN4 | - | SPI1片选引脚 |
| 15 | PA5 | I/O | 3.3V | PA5 | SPI1_SCK、ADC12_IN5 | - | SPI1时钟引脚 |
| 16 | PA6 | I/O | 3.3V | PA6 | SPI1_MISO、ADC12_IN6、TIM3_CH1 | TIM1_BKIN | SPI1主入从出引脚 |
| 17 | PA7 | I/O | 3.3V | PA7 | SPI1_MOSI、ADC12_IN7、TIM1_CH2 | TIM1_CH1N | SPI1主出从入引脚 |
| 18 | PB0 | I/O | 3.3V | PB0 | ADC12_IN8、TIM3_CH3 | TIM1_CH2N | 通用IO+ADC+定时器通道 |
| 19 | PB1 | I/O | 3.3V | PB1 | ADC12_IN9、TIM3_CH4 | TIM1_CH3N | 通用IO+ADC+定时器通道 |
| 20 | PB2 | I/O | FT | PB2/BOOT1 | - | 启动模式选择,5V容忍 | |
| 21 | PB10 | I/O | FT | PB10 | I2C2_SCL、USART3_TX | - | I2C2时钟、串口3发送 |
| 22 | PB11 | I/O | FT | PB11 | I2C2_SDA、USART3_RX | - | I2C2数据、串口3接收 |
| 23 | VSS1 | S | - | 数字地 | - | - | 芯片数字接地 |
| 24 | VDD1 | S | - | 数字电源 | - | - | 芯片数字供电,3.3V |
| 25 | PB12 | I/O | FT | PB12 | SPI2_NSS、I2C2_SMBAI、USART3_CK、TIM1_BKIN | - | SPI2片选、5V容忍 |
| 26 | PB13 | I/O | FT | PB13 | SPI2_SCK、USART3_CTS、TIM1_CH1N | - | SPI2时钟、5V容忍 |
| 27 | PB14 | I/O | FT | PB14 | SPI2_MISO、USART3_RTS、TIM1_CH2N | - | SPI2主入从出、5V容忍 |
| 28 | PB15 | I/O | FT | PB15 | SPI2_MOSI、TIM1_CH3N | - | SPI2主出从入、5V容忍 |
| 29 | PA8 | I/O | 3.3V | PA8 | MCO、USART1_CK、TIM1_CH1 | - | 系统时钟输出、定时器通道1 |
| 30 | PA9 | I/O | 3.3V | PA9 | USART1_TX、TIM1_CH2 | - | 串口1发送引脚 |
| 31 | PA10 | I/O | 3.3V | PA10 | USART1_RX、TIM1_CH3 | - | 串口1接收引脚 |
| 32 | PA11 | I/O | 3.3V | PA11 | USART1_CTS、USBDM、CAN_RX、TIM1_CH4 | - | USB数据负、CAN接收 |
| 33 | PA12 | I/O | 3.3V | PA12 | USART1_RTS、USBDP、CAN_TX、TIM1_ETR | - | USB数据正、CAN发送 |
| 34 | PA13 | I/O | 3.3V | JTMS / SWDIO | - | PA13 | JTAG/SWD调试数据 |
| 35 | VSS2 | S | - | 数字地 | - | - | 芯片数字接地 |
| 36 | VDD2 | S | - | 数字电源 | - | - | 芯片数字供电,3.3V |
| 37 | PA14 | I/O | 3.3V | JTCK / SWCLK | - | PA14 | JTAG/SWD调试时钟 |
| 38 | PA15 | I/O | 3.3V | JTDI | - | PA15、TIM2_CH1_ETR、SPI1_NSS | JTAG 调试接口的数据输入 |
| 39 | PB3 | I/O | FT | JTDO | - | PB3 、TRACESWO、TIM2_CH2、SPI1_SCK | JTAG数据输出、5V容忍 |
| 40 | PB4 | I/O | FT | NJTRST | - | PB4 、TIM3_CH1、SPI1_MISO | JTAG复位、5V容忍 |
| 41 | PB5 | I/O | FT | PB5 | I2C1_SMBAI | TIM3_CH2、SPI1_MOSI | 通用定时器、5V容忍 |
| 42 | PB6 | I/O | FT | PB6 | I2C1_SCL、TIM4_CH1 | USART1_TX | I2C1时钟、5V容忍 |
| 43 | PB7 | I/O | FT | PB7 | I2C1_SDA、TIM4_CH2 | USART1_RX | I2C1数据、5V容忍 |
| 44 | BOOT0 | I | 3.3V | BOOT0 | - | - | 启动选择,高电平进ISP |
| 45 | PB8 | I/O | FT | PB8 | TIM4_CH3 | I2C1_SCL、CAN_RX | 通用定时器、5V容忍 |
| 46 | PB9 | I/O | FT | PB9 | TIM4_CH4 | I2C2_SDA、CAN_TX | 通用定时器、5V容忍 |
| 47 | VSS3 | S | - | 数字地 | - | - | 芯片数字接地 |
| 48 | VDD3 | S | - | 数字电源 | - | - | 芯片数字供电,3.3V |
STM32 支持 JTAG/SWD 两种调试方式:
- SWD:SWDIO、SWCLK -- 【ST-LINK 用的是 SWD 方式】
- JTAG:JTMS、JTCK、JTDI、JTDO、NJTRST
BOOT 与启动模式:.
BOOT0 BOOT1 启动位置 说明 用途 0 任意 主闪存(Flash) 从芯片内部程序存储器启动 正常运行、下载程序后默认使用 1 0 系统存储器(ISP) 从出厂固化的串口下载程序启动 串口一键下载、USB转TTL烧录 1 1 内置SRAM 从内存启动,不掉程序 调试、快速运行代码,断电丢失 快速记忆:
- 正常运行:BOOT0=0
- 串口下载:BOOT0=1,BOOT1=0
- 调试运行:BOOT0=1,BOOT1=1
💙 STM32 系统结构 (截图自参考手册 2.1)
三个总线 + 三大块结构

💙 STM32F103C8T6 最小系统电路

