1.STM32F103基本知识
1.1 stm32片上资源外设基本知识
英文 | 名称 | 英文 | 名称 |
---|---|---|---|
RCC | 复位和时钟控制 | USB | USB通信 |
GPIO | 通用IO口 | CAN | CAN通信 |
AFIO | 复用IO口 | PWR | 电源管理器 |
EXTI | 外部中断 | CRC | CRC效验 |
NVIC | 嵌套向量中断控制器 | BKP | 备份寄存器 |
SYSTICK | 系统定时器 | RTC | 实时时钟 |
TIM | 定时器 | WWDG | 窗口看门狗 |
DMA | 直接内存访问 | IWDG | 独立看门狗 |
ADC | 模数转换 | DAC | 数模转换 |
USART | 同步/异步串口通信 | SDIO | SD卡接口 |
I2C | I2C通信 | FSMC | 可变静态存储控制器 |
CAN | CAN通信 | OTG | 主机接口 |
1.2 stm32引脚名称/功能
引脚号 | 引脚名称 | 类型 | I/O口电平 | 主功能 | 默认复用功能 | 重定义 |
1 | VBAT | S | VBAT | |||
2 | PC13-TAMPER_RTC | I/O | PC13 | TAMPER-RTC | ||
3 | PC14-OSC32_OUT | I/O | PC14 | OSC32_IN | ||
4 | PC15-OSC32_OUT | I/O | PC15 | OSC32_OUT | ||
5 | OSC_IN | I | OSC_IN | |||
6 | OSC_OUT | O | OSC_OUT | |||
7 | NRST | I/O | NRST | |||
8 | VSSA | S | VSSA | |||
9 | VDDA | S | VDDA | |||
10 | PA0-WKUP | I/O | PA0 | WKUP/USART2_CTS/ADC12_IN0/TIM2_CH1_ETR | ||
11 | PA1 | I/O | PA1 | USART2_RTS/ADC12_IN1/TIM2_CH2 | ||
12 | PA2 | I/O | PA2 | USART2_TX/ADC12_IN2/TIM2_CH3 | ||
13 | PA3 | I/O | PA3 | USART2_RX/ADC12_IN3/TIM2_CH4 | ||
14 | PA4 | I/O | PA4 | SPI1_NSS/USART2_CK/ADC12_IN4 | ||
15 | PA5 | I/O | PA5 | SPI1_SCK/ADC12_IN5 | ||
16 | PA6 | I/O | PA6 | SPI1_MISO/ADC12_IN6/TIM3_CH1 | TIM1_BKIN | |
17 | PA7 | I/O | PA7 | SPI1_MOSI/ADC12_IN7/TIM3_CH2 | TIM1_CH1N | |
18 | PB0 | I/O | PB0 | ADC12_IN8/TIM3_CH3 | TIM1_,CH2N | |
19 | PB1 | I/O | PB1 | ADC12_IN9/TIM3_CH4 | TIM1_CH3N | |
20 | PB2 | I/O | FT | PB2/BOOT1 | ||
21 | PB10 | I/O | FT | PB10 | I2C2_SCL/USART3_TX | TIM2_CH3 |
22 | PB11 | I/O | FT | PB11 | I2C2_SDA/USART3_RX | TIM2_CH4 |
23 | VSS_1 | S | VSS_1 | |||
24 | VDD_1 | S | VDD-1 | |||
25 | PB12 | I/O | FT | PB12 | SPI2_NSS/I2C2_SMBAI/USART3_CK/TIM1_BKIN | |
26 | PB13 | I/O | FT | PB13 | SPI2_SCK/USART3_CTS/TIM1_CH1N | |
27 | PB14 | I/O | FT | PB14 | SPI2_MISIO/USART3_RTS/TIM1_CH2N | |
28 | PB15 | I/O | FT | PB15 | SPI2_MOSI/TIM1_CH3N | |
29 | PA8 | I/O | FT | PA8 | USART1_CK/TIM1_CH1/MCO | |
30 | PA9 | I/O | FT | PA9 | USART1_TX/TIM1_CH2 | |
31 | PA10 | I/O | FT | PA10 | USART1_RX/TIM1_CH3 | |
32 | PA11 | I/O | FT | PA11 | USART1_CTS/USBDM/CAN_RX/TIM1_CH4 | |
33 | PA12 | I/O | FT | PA12 | USART1_RTS/USBDP/CAN_TX/TIM1_ETR | |
34 | PA13 | I/O | FT | JTMS/SWDIO | PA13 | |
35 | VSS_2 | S | VSS_2 | |||
36 | VDD_2 | S | VDD_2 | |||
37 | PA14 | I/O | FT | JTCK/SWCLK | PA14 | |
38 | PA15 | I/O | FT | JTDI | TIM2_CH1_ETR/PA15/SPI1_NSS | |
39 | PB3 | I/O | FT | JTDO | PB3/TRACESWO/TIM2_CH2/SPI1_CLK | |
40 | PB4 | I/O | FT | NJTRST | PB4/TIM3_CH1/SPI1_MISO | |
41 | PB5 | I/O | PB5 | I2C1_SMBAI | YIM3_CH2/SPI1_MOSI | |
42 | PB6 | I/O | FT | PB6 | I2C1_SCL/TIM4_CH1 | USART1_TX |
43 | PB7 | I/O | FT | PB7 | I2C1_SDA/TIM4_CH2 | USART1_RX |
44 | BOOT0 | I | BOOT0 | |||
45 | PB8 | I/O | FT | PB8 | TIM4_CH3 | I2C_SCL/CAN_RX |
46 | PB9 | I/O | FT | PB9 | TIM4_CH4 | I2C1_SDA/CAN_TX |
47 | VSS_3 | S | VSS_3 | |||
48 | VDD_3 | S | VDD_3 |
1.3stm32f1型号分类
缩写 | 释义 | flash容量 | 型号 |
LD_VL | 小容量 | 16-32K | STM32F100 |
MD_VL | 中容量 | 64-128K | STM32F100 |
HD_VL | 大容量 | 256-512K | STM32F100 |
LD | 小容量 | 16-32k | 101/102/103 |
MD | 中容量 | 64-128k | 101/102/103 |
HD | 大容量 | 256-512k | 101/102/103 |
XL | 加大 | >512K | 101/102/103 |
CL | 互联型 | 105/107 |
二、GPIO
2.1 GPIO输出使用
- 通用输入输出口
- 配置8种输入输出模式
- 引脚电平:0-3.3V,部分引脚接受5V
- 输出模式下可控制端口输出高低电平,以驱动LED、蜂鸣器、模拟通信协议输出时序
- 输入模式下可读取可读取端口高低电压,读取按键输入、外接模块电平信号输入、ADC电压采集、模拟通信协议接受数据等

寄存器是32位的,只有低16位对应有端口,整体读写,高16位用不到,驱动器是增加电压驱动能力

二极管保护电路:>3.3V时,电流接入VDD,不影响电路内部;<0V时,接入VSS,电流流入I/O口;0-3.3V之间时,流入内部电路。
上/下拉电阻:程序配置。一个端子不能悬空,容易受外界影响而改变。上拉输入默认高电平输入方式,下拉默认低电平输入方式。
施密特触发器:用于信号整形。有两个阈值电压,当某一信号在1/3VCC~2/3VCC之间不变,>2/3VCC翻转,<1/3VCC翻转。
P-MOS/N-MOS:电子开关。推挽输出模式:两者都有效,输出数据寄存器位1,P-MOS导通,N-MOS管截止,输出接VDD,输出高电平。相反同理。
开漏输出模式:P-MOS无效,输出数据寄存器位1,N-MOS断开,相当于输出断开,即高阻模式。输出寄存器为0,N-MOS导通,接VSS,输出低电平。这种模式只有低电平有驱动能力。可作为IIC通信协议驱动模式。还可输出5V电平信号,外接上拉电阻。
通过GPIO端口配置寄存器,有下面8种模式:

注意:输入模式下,输出控制电路断开
浮空/上拉/下拉输入模式:
模拟输入:输入/输出都无效,只有模拟输入一根线能用,适用于ADC
输出配置:一个端口可以有多个输入,但只能有一个输出。
复用输出配置:引脚控制权由片上外设控制