一.前言
在嵌入式系统开发中,STM32系列微控制器因其高性能、低功耗和丰富的外设资源而备受青睐。对于STM32开发者而言,深入理解其各个外设的引脚分配是设计高效、可靠硬件系统的关键一步。本博客旨在详细梳理STM32系列微控制器中常见的几种外设(包括串口、PWM、ADC、IIC和SPI)的引脚对应关系,帮助开发者快速定位所需功能对应的引脚,从而加速项目开发进程。
二.写这篇博客原因
1.每次用到下面那些外设总记不住引脚需要查,太麻烦了,所以打算总结下来,以供自己随时翻阅
2. 我常用的也就STM32F103C8T6和ZET6所以就总结了一下这两个的外设引脚对应
可以加快你的开发进度,建议收藏起来
如果觉得这篇文章对您有所帮助,请点赞关注,您的支持是我坚持的动力
墨小羽ovo个人主页
三.STM32 串口对应哪些引脚
3.1 USART1:
TX:PA9
RX:PA10
3.2 USART2:
TX:PA2
RX:PA3
3.3 USART3
TX:PB10
RX:PB11
3.4 UART4
TX(发送):PC10
RX(接收):PC11
3.5 UART5
TX(发送):PC12
RX(接收):PD2
3.6 表格总结
串口 | TX | RX |
---|
USART1 | PA9 | PA10 |
USART2 | PA2 | PA3 |
USART3 | PB10 | PB11 |
UART4 | PC10 | PC11 |
UART5 | PC12 | PD2 |
3.7 总结
(1) 3.1-3.3是通用同步/异步串行接口USART
(2) 3.4,3.5是通用异步串行接口UART
(3)STM32F103C8T6只有串口1-串口3中断,### (4)STM32ZET6有串口1-串口5所有中断
(5)USART1分布在APB2上(RCC_APB2Periph_USART1)
(5)USART2,UASRT3,UART4,UART5 分布在APB1上(RCC_APB1Periph_USART?)
四.STM32的PWM对应哪些引脚(暂时不考虑重映射的)
STM32除了基本定时器TIM6和TIM7之外其他引脚都有PWM输出的功能
4.1 TIM1
通道号 | 引脚 | 备注 |
---|
TIM1_CH1 | PA8 | 该引脚可配置为TIM1的第1个PWM输出通道 |
TIM1_CH2 | PA9 | 该引脚可配置为TIM1的第2个PWM输出通道 |
TIM1_CH3 | PA10 | 该引脚可配置为TIM1的第3个PWM输出通道 |
TIM1_CH4 | PA11 | 该引脚可配置为TIM1的第4个PWM输出通道 |
4.2 TIM2
通道号 | 引脚 | 备注 |
---|
TIM2_CH1 | PA0 | 该引脚可配置为TIM2的第1个PWM输出通道 |
TIM2_CH2 | PA1 | 该引脚可配置为TIM2的第2个PWM输出通道 |
TIM2_CH3 | PA2 | 该引脚可配置为TIM2的第3个PWM输出通道(注意:并非所有STM32F103型号都支持TIM2_CH3作为PWM输出,这取决于具体的引脚复用映射) |
TIM2_CH4 | PA3 | 该引脚在某些STM32型号上可能不可用作为TIM2的PWM输出,因为它可能被其他功能复用。然而,在支持的情况下,它可以配置为TIM2的第4个PWM输出通道 |
4.3 TIM3
通道号 | 引脚 | 备注 |
---|
TIM3_CH1 | PA6 | 该引脚可配置为TIM3的第1个PWM输出通道 |
TIM3_CH2 | PA7 | 该引脚可配置为TIM3的第2个PWM输出通道 |
TIM3_CH3 | PB0 | 该引脚可配置为TIM3的第3个PWM输出通道 |
TIM3_CH4 | PB1 | 该引脚它可以配置为TIM3的第4个PWM输出通道 |
4.4 TIM4
通道号 | 引脚 | 备注 |
---|
TIM4_CH1 | PB6 | 该引脚可配置为TIM4的第1个PWM输出通道 |
TIM4_CH2 | PB7 | 该引脚可配置为TIM4的第2个PWM输出通道 |
TIM4_CH3 | PB8 | 该引脚可配置为TIM4的第3个PWM输出通道 |
TIM4_CH4 | PB9 | 该引脚它可以配置为TIM4的第4个PWM输出通道 |
4.5 TIM5
一般不用TIM5,需要重映射才可以,所以暂不考虑
通道号 | 引脚 | 备注 |
---|
TIM5_CH1 | PA0 | 引脚可通过配置用于TIM5的PWM输出(注意:这通常不是直接支持的,仅为示例) |
TIM5_CH2 | PA1 | 引脚可通过配置用于TIM5的PWM输出(注意:这通常不是直接支持的,仅为示例) |
TIM5_CH3 | PA2 | 引脚可通过配置用于TIM5的PWM输出(注意:这通常不是直接支持的,仅为示例) |
TIM5_CH4 | PA3 | 引脚可通过配置用于TIM5的PWM输出(注意:这通常不是直接支持的,仅为示例) |
4.6 TIM6和TIM7
基本定时器没有PWM功能
4.7 总结
1. TIM1挂载在APB2总线上
2.TIM2-TIM7挂载在APB1总线上
3.STM32F103C8T6有四个定时器.一个高级定时器TIM1,三个通用定时器TIM2-TIM4
4.TM32F103ZET6有八个定时器.两个高级定时器TIM1,TIM8 四个通用定时器TIM2-TIM5
五.STM32的ADC对应哪些引脚
5.1 ADC1和ADC2
ADC通道 | 通用引脚标识 | 特定型号引脚(以STM32F103ZET6为例) |
---|
IN0 | PA0 | ADC12_IN0 |
IN1 | PA1 | ADC12_IN1 |
IN2 | PA2 | ADC12_IN2 |
IN3 | PA3 | ADC12_IN3 |
IN4 | PA4 | ADC12_IN4 |
IN5 | PA5 | ADC12_IN5 |
IN6 | PA6 | ADC12_IN6 |
IN7 | PA7 | ADC12_IN7 |
TIN8 | PB0 | ADC12_IN8 |
IN9 | PB1 | ADC12_IN9 |
IN10 | PC0 | ADC12_IN10 |
IN11 | PC1 | ADC12_IN11 |
IN12 | PC2 | ADC12_IN12 |
IN13 | PC3 | ADC12_IN13 |
IN14 | PC4 | ADC12_IN14 |
IN15 | PC5 | ADC12_IN15 |
IN16 | 温度传感器 | — |
IN17 | 内部参考电压 | — |
5.2 ADC3
ADC通道 | 通用引脚标识 | 特定型号引脚(以STM32F103ZET6为例) |
---|
IN0 | PA0 | ADC3_IN0 |
IN1 | PA1 | ADC3_IN1 |
IN2 | PA2 | ADC3_IN2 |
IN3 | PA3 | ADC3_IN3 |
IN4 | PF6 | ADC3_IN4 |
IN5 | PF7 | ADC3_IN5 |
IN6 | PF8 | ADC3_IN6 |
IN7 | PF9 | ADC3_IN7 |
IN8 | PF10 | ADC3_IN8 |
IN9 | — | — |
IN10 | PC0 | ADC3_IN10 |
IN11 | PC1 | ADC3_IN11 |
IN12 | PC2 | ADC3_IN12 |
IN13 | PC3 | ADC3_IN13 |
IN14 | — | — |
IN15 | — | — |
IN16 | — | — |
IN17 | — | — |
5.3 ADC总结
1.STM32F103C8T6没有ADC3,只有ADC12
STM32F103 ZET6有ADC1,ADC2,ADC3
2.ADC1和ADC2挂载在APB2总线上
六.STM32的IIC对应哪些引脚
一般有软件IIC和硬件IIC,软件IIC引脚不固定,这里以硬件IIC为例子
6.1 表格引脚对应关系
IIC | SCL | SDA |
---|
IIC1 | PB8 | PB9 |
IIC2 | PB10 | PB11 |
6.2 总结
1.STM32F103C8T6和STM32F103ZET6都是只有两个IIC
2.I2C1和I2C2都是APB1总线上
七.STM32的SPI对应哪些引脚
7.1表格引脚对应关系
SPI | SCL | MOSI | MISO | CS |
---|
SPI1 | PA5 | PA7 | PA6 | PA4 |
SPI2 | PB13 | PB15 | PB14 | PB12 |
SPI3 | PB3 | PB5 | PB4 | PA15 |
7.1 SPI总结
1.STM32F103C8T6只有两个SPI
2.STM32F103ZET6有三个SPI
3.SPI1挂载在APB2总线上
4.SPI2和SPI3挂载在APB1总线上
八.参考资料
【STM32F103ZET6开发板】第2-12-2讲:通用定时器和高级定时器
九.总结
本博客详细介绍了STM32F103系列微控制器中几个关键外设通信接口(USART/UART、PWM、ADC、IIC、SPI)及其对应的引脚分配情况,特别以STM32F103ZET6和STM32F103C8T6两款型号为例进行了详细说明.最后呢,在编写博客的过程中,我尽量保持内容的准确性和完整性,但也难免会有疏漏或错误之处。欢迎各位读者指出其中的问题,帮助我不断进步。谢谢大家的阅读,希望这篇博客能够帮助到大家。点点关注,不迷路哦!
墨小羽ovo个人主页