0 卖盘信息
BOM询价
您现在的位置: 首页 > 电子资讯 >基础知识 > stm32f103rct6pwm引脚定义表

stm32f103rct6pwm引脚定义表

来源:
2025-05-21
类别:基础知识
eye 17
文章创建人 拍明芯城

STM32F103RCT6 PWM引脚定义表及详细功能解析

STM32F103RCT6是意法半导体(ST)推出的一款基于ARM Cortex-M3内核的32位微控制器,采用LQFP64封装,拥有64个引脚,其中大部分引脚支持复用功能,包括PWM(脉冲宽度调制)输出。PWM功能广泛应用于电机控制、LED调光、舵机驱动等领域,是嵌入式系统开发中不可或缺的功能模块。本文将详细解析STM32F103RCT6的PWM引脚定义、功能配置及使用方法,并结合实际案例说明其应用场景。

image.png

一、STM32F103RCT6 PWM功能概述

STM32F103RCT6内置了多个定时器,包括高级定时器(TIM1、TIM8)、通用定时器(TIM2~TIM5)和基本定时器(TIM6、TIM7)。其中,高级定时器和通用定时器均支持PWM输出功能,具体如下:

  • 高级定时器(TIM1、TIM8):支持高级PWM模式(如互补输出、死区时间控制),适用于电机驱动等高精度应用。

  • 通用定时器(TIM2~TIM5):支持标准PWM模式,适用于LED调光、舵机控制等常规应用。

PWM输出的核心参数包括:

  1. 预分频器(PSC):用于降低定时器时钟频率。

  2. 自动重装载值(ARR):决定PWM周期。

  3. 捕获比较寄存器(CCR):决定PWM占空比。

二、STM32F103RCT6 PWM引脚定义表

以下是STM32F103RCT6中支持PWM输出的引脚及其复用功能定义:


引脚编号引脚名称默认功能复用功能(PWM相关)
PA0TIM2_CH1GPIOTIM2通道1(PWM输出)
PA1TIM2_CH2GPIOTIM2通道2(PWM输出)
PA2TIM2_CH3GPIOTIM2通道3(PWM输出)
PA3TIM2_CH4GPIOTIM2通道4(PWM输出)
PA6TIM3_CH1GPIOTIM3通道1(PWM输出)
PA7TIM3_CH2GPIOTIM3通道2(PWM输出)
PB0TIM3_CH3GPIOTIM3通道3(PWM输出)
PB1TIM3_CH4GPIOTIM3通道4(PWM输出)
PA8TIM1_CH1GPIOTIM1通道1(高级PWM输出,支持互补输出)
PA9TIM1_CH2GPIOTIM1通道2(高级PWM输出,支持互补输出)
PA10TIM1_CH3GPIOTIM1通道3(高级PWM输出,支持互补输出)
PB13TIM1_CH1NGPIOTIM1通道1互补输出(需配合TIM1_CH1使用)
PB14TIM1_CH2NGPIOTIM1通道2互补输出(需配合TIM1_CH2使用)
PB15TIM1_CH3NGPIOTIM1通道3互补输出(需配合TIM1_CH3使用)
PC6TIM3_CH1GPIOTIM3通道1(PWM输出,部分开发板可能复用为其他功能)
PC7TIM3_CH2GPIOTIM3通道2(PWM输出,部分开发板可能复用为其他功能)
PC8TIM3_CH3GPIOTIM3通道3(PWM输出,部分开发板可能复用为其他功能)
PC9TIM3_CH4GPIOTIM3通道4(PWM输出,部分开发板可能复用为其他功能)


引脚复用说明

  1. 高级定时器(TIM1)

    • TIM1的通道1~3(PA8~PA10)支持高级PWM模式,可配置互补输出(如PA8与PB13配对,PA9与PB14配对,PA10与PB15配对),适用于三相无刷电机驱动等场景。

    • 互补输出需配置死区时间,避免上下桥臂直通。

  2. 通用定时器(TIM2~TIM5)

    • TIM2~TIM5的通道均支持标准PWM模式,适用于LED调光、舵机控制等常规应用。

    • 例如,TIM2的通道1(PA0)可用于驱动SG90舵机,通过调整CCR值实现0°~180°的角度控制。

  3. 引脚驱动能力

    • 部分引脚(如PC13~PC15)驱动能力较弱,仅适用于低负载应用,不适合直接驱动电机或LED。

    • 高负载应用需通过驱动电路(如三极管、MOSFET)增强驱动能力。

三、PWM功能配置步骤

以下是配置STM32F103RCT6 PWM输出的基本步骤(以TIM2通道1为例):

1. 硬件连接

  • 将PWM输出引脚(如PA0)连接至负载(如LED、电机驱动模块)。

  • 确保负载电源与MCU电源共地。

2. 初始化时钟

使能TIM2和GPIOA的时钟:


RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

3. 配置GPIO为复用推挽输出

将PA0配置为TIM2_CH1的复用推挽输出:


GPIO_InitTypeDef GPIO_InitStructure;

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

GPIO_Init(GPIOA, &GPIO_InitStructure);

4. 配置TIM2为PWM模式

设置自动重装载值(ARR)和预分频器(PSC),计算PWM频率:


TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

TIM_TimeBaseStructure.TIM_Period = 899; // ARR值  

TIM_TimeBaseStructure.TIM_Prescaler = 0; // PSC值  

TIM_TimeBaseStructure.TIM_ClockDivision = 0;

TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;

TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);
    • PWM频率计算公式:f_PWM = 72MHz / ((PSC + 1) * (ARR + 1))

    • 例如,PSC=0,ARR=899时,PWM频率为80kHz。

5. 配置PWM输出通道

设置TIM2通道1为PWM模式2,输出极性为高:


TIM_OCInitTypeDef TIM_OCInitStructure;

TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2;

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;

TIM_OCInitStructure.TIM_Pulse = 0; // 初始占空比为0  

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;

TIM_OC1Init(TIM2, &TIM_OCInitStructure);

6. 使能PWM输出

开启主输出使能(MOE)和ARR预装载:


TIM_CtrlPWMOutputs(TIM2, ENABLE);

TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);

TIM_ARRPreloadConfig(TIM2, ENABLE);

TIM_Cmd(TIM2, ENABLE);

7. 动态调整占空比

  • 通过修改CCR值调整占空比:


TIM_SetCompare1(TIM2, pwmval); // pwmval范围为0~899

四、PWM应用案例

1. 舵机控制

硬件:SG90舵机、STM32F103RCT6开发板。

原理:SG90舵机通过PWM信号控制角度,周期为20ms(50Hz),脉宽范围为0.5ms~2.5ms(对应0°~180°)。

代码示例


void Servo_SetAngle(float angle) {

uint16_t pwmval = 500 + (angle / 180.0) * 2000; // 脉宽计算  

TIM_SetCompare1(TIM2, pwmval);

}

2. 电机调速

  • 硬件:BLDC电机、UB510驱动器、STM32F103RCT6开发板。

  • 原理:通过PWM信号控制电机驱动器的SV引脚,占空比范围为0%~100%,频率建议为1kHz~20kHz。

  • 代码示例


void Motor_SetSpeed(uint8_t speed) {

uint16_t pwmval = (speed / 100.0) * 1000; // 占空比计算  

TIM_SetCompare1(TIM2, pwmval);

}

3. LED调光

  • 硬件:LED、限流电阻、STM32F103RCT6开发板。

  • 原理:通过PWM信号控制LED亮度,占空比越高,LED越亮。

  • 代码示例


void LED_SetBrightness(uint8_t brightness) {

uint16_t pwmval = (brightness / 100.0) * 899; // 占空比计算  

TIM_SetCompare1(TIM2, pwmval);

}

五、注意事项

  1. 引脚冲突:避免同时启用同一引脚的不同功能(如USART与PWM)。

  2. 时钟配置:确保APB1/APB2时钟已正确配置,否则PWM频率可能异常。

  3. 驱动能力:高负载应用需通过驱动电路增强引脚驱动能力。

  4. 调试工具:使用示波器或逻辑分析仪监测PWM信号,确保波形正确。

六、总结

STM32F103RCT6的PWM功能通过多个定时器通道实现,支持标准PWM和高级PWM模式,适用于电机控制、LED调光、舵机驱动等多种场景。通过合理配置引脚复用、定时器参数和输出模式,开发者可以轻松实现高精度的PWM信号输出。本文详细介绍了PWM引脚定义、功能配置及实际应用案例,为嵌入式系统开发提供了全面的参考。

责任编辑:David

【免责声明】

1、本文内容、数据、图表等来源于网络引用或其他公开资料,版权归属原作者、原发表出处。若版权所有方对本文的引用持有异议,请联系拍明芯城(marketing@iczoom.com),本方将及时处理。

2、本文的引用仅供读者交流学习使用,不涉及商业目的。

3、本文内容仅代表作者观点,拍明芯城不对内容的准确性、可靠性或完整性提供明示或暗示的保证。读者阅读本文后做出的决定或行为,是基于自主意愿和独立判断做出的,请读者明确相关结果。

4、如需转载本方拥有版权的文章,请联系拍明芯城(marketing@iczoom.com)注明“转载原因”。未经允许私自转载拍明芯城将保留追究其法律责任的权利。

拍明芯城拥有对此声明的最终解释权。

标签: stm32f103rct6pwm

相关资讯

资讯推荐
云母电容公司_云母电容生产厂商

云母电容公司_云母电容生产厂商

开关三极管13007的规格参数、引脚图、开关电源电路图?三极管13007可以用什么型号替代?

开关三极管13007的规格参数、引脚图、开关电源电路图?三极管13007可以用什么型号替代?

74ls74中文资料汇总(74ls74引脚图及功能_内部结构及应用电路)

74ls74中文资料汇总(74ls74引脚图及功能_内部结构及应用电路)

芯片lm2596s开关电压调节器的中文资料_引脚图及功能_内部结构及原理图_电路图及封装

芯片lm2596s开关电压调节器的中文资料_引脚图及功能_内部结构及原理图_电路图及封装

芯片UA741运算放大器的资料及参数_引脚图及功能_电路原理图?ua741运算放大器的替代型号有哪些?

芯片UA741运算放大器的资料及参数_引脚图及功能_电路原理图?ua741运算放大器的替代型号有哪些?

28nm光刻机卡住“02专项”——对于督工部分观点的批判(睡前消息353期)

28nm光刻机卡住“02专项”——对于督工部分观点的批判(睡前消息353期)

拍明芯城微信图标

各大手机应用商城搜索“拍明芯城”

下载客户端,随时随地买卖元器件!

拍明芯城公众号
拍明芯城抖音
拍明芯城b站
拍明芯城头条
拍明芯城微博
拍明芯城视频号
拍明
广告
恒捷广告
广告
深亚广告
广告
原厂直供
广告