stm32f103rct6pwm引腳定義表


STM32F103RCT6 PWM引腳定義表及詳細功能解析
STM32F103RCT6是意法半導(dǎo)體(ST)推出的一款基于ARM Cortex-M3內(nèi)核的32位微控制器,采用LQFP64封裝,擁有64個引腳,其中大部分引腳支持復(fù)用功能,包括PWM(脈沖寬度調(diào)制)輸出。PWM功能廣泛應(yīng)用于電機控制、LED調(diào)光、舵機驅(qū)動等領(lǐng)域,是嵌入式系統(tǒng)開發(fā)中不可或缺的功能模塊。本文將詳細解析STM32F103RCT6的PWM引腳定義、功能配置及使用方法,并結(jié)合實際案例說明其應(yīng)用場景。
一、STM32F103RCT6 PWM功能概述
STM32F103RCT6內(nèi)置了多個定時器,包括高級定時器(TIM1、TIM8)、通用定時器(TIM2~TIM5)和基本定時器(TIM6、TIM7)。其中,高級定時器和通用定時器均支持PWM輸出功能,具體如下:
高級定時器(TIM1、TIM8):支持高級PWM模式(如互補輸出、死區(qū)時間控制),適用于電機驅(qū)動等高精度應(yīng)用。
通用定時器(TIM2~TIM5):支持標準PWM模式,適用于LED調(diào)光、舵機控制等常規(guī)應(yīng)用。
PWM輸出的核心參數(shù)包括:
預(yù)分頻器(PSC):用于降低定時器時鐘頻率。
自動重裝載值(ARR):決定PWM周期。
捕獲比較寄存器(CCR):決定PWM占空比。
二、STM32F103RCT6 PWM引腳定義表
以下是STM32F103RCT6中支持PWM輸出的引腳及其復(fù)用功能定義:
引腳編號 | 引腳名稱 | 默認功能 | 復(fù)用功能(PWM相關(guān)) |
---|---|---|---|
PA0 | TIM2_CH1 | GPIO | TIM2通道1(PWM輸出) |
PA1 | TIM2_CH2 | GPIO | TIM2通道2(PWM輸出) |
PA2 | TIM2_CH3 | GPIO | TIM2通道3(PWM輸出) |
PA3 | TIM2_CH4 | GPIO | TIM2通道4(PWM輸出) |
PA6 | TIM3_CH1 | GPIO | TIM3通道1(PWM輸出) |
PA7 | TIM3_CH2 | GPIO | TIM3通道2(PWM輸出) |
PB0 | TIM3_CH3 | GPIO | TIM3通道3(PWM輸出) |
PB1 | TIM3_CH4 | GPIO | TIM3通道4(PWM輸出) |
PA8 | TIM1_CH1 | GPIO | TIM1通道1(高級PWM輸出,支持互補輸出) |
PA9 | TIM1_CH2 | GPIO | TIM1通道2(高級PWM輸出,支持互補輸出) |
PA10 | TIM1_CH3 | GPIO | TIM1通道3(高級PWM輸出,支持互補輸出) |
PB13 | TIM1_CH1N | GPIO | TIM1通道1互補輸出(需配合TIM1_CH1使用) |
PB14 | TIM1_CH2N | GPIO | TIM1通道2互補輸出(需配合TIM1_CH2使用) |
PB15 | TIM1_CH3N | GPIO | TIM1通道3互補輸出(需配合TIM1_CH3使用) |
PC6 | TIM3_CH1 | GPIO | TIM3通道1(PWM輸出,部分開發(fā)板可能復(fù)用為其他功能) |
PC7 | TIM3_CH2 | GPIO | TIM3通道2(PWM輸出,部分開發(fā)板可能復(fù)用為其他功能) |
PC8 | TIM3_CH3 | GPIO | TIM3通道3(PWM輸出,部分開發(fā)板可能復(fù)用為其他功能) |
PC9 | TIM3_CH4 | GPIO | TIM3通道4(PWM輸出,部分開發(fā)板可能復(fù)用為其他功能) |
引腳復(fù)用說明
高級定時器(TIM1):
TIM1的通道1~3(PA8~PA10)支持高級PWM模式,可配置互補輸出(如PA8與PB13配對,PA9與PB14配對,PA10與PB15配對),適用于三相無刷電機驅(qū)動等場景。
互補輸出需配置死區(qū)時間,避免上下橋臂直通。
通用定時器(TIM2~TIM5):
TIM2~TIM5的通道均支持標準PWM模式,適用于LED調(diào)光、舵機控制等常規(guī)應(yīng)用。
例如,TIM2的通道1(PA0)可用于驅(qū)動SG90舵機,通過調(diào)整CCR值實現(xiàn)0°~180°的角度控制。
引腳驅(qū)動能力:
部分引腳(如PC13~PC15)驅(qū)動能力較弱,僅適用于低負載應(yīng)用,不適合直接驅(qū)動電機或LED。
高負載應(yīng)用需通過驅(qū)動電路(如三極管、MOSFET)增強驅(qū)動能力。
三、PWM功能配置步驟
以下是配置STM32F103RCT6 PWM輸出的基本步驟(以TIM2通道1為例):
1. 硬件連接
將PWM輸出引腳(如PA0)連接至負載(如LED、電機驅(qū)動模塊)。
確保負載電源與MCU電源共地。
2. 初始化時鐘
使能TIM2和GPIOA的時鐘:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
3. 配置GPIO為復(fù)用推挽輸出
將PA0配置為TIM2_CH1的復(fù)用推挽輸出:
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模式
設(shè)置自動重裝載值(ARR)和預(yù)分頻器(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輸出通道
設(shè)置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預(yù)裝載:
TIM_CtrlPWMOutputs(TIM2, ENABLE); TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable); TIM_ARRPreloadConfig(TIM2, ENABLE); TIM_Cmd(TIM2, ENABLE);
7. 動態(tài)調(diào)整占空比
通過修改CCR值調(diào)整占空比:
TIM_SetCompare1(TIM2, pwmval); // pwmval范圍為0~899 |
四、PWM應(yīng)用案例
1. 舵機控制
硬件:SG90舵機、STM32F103RCT6開發(fā)板。
原理:SG90舵機通過PWM信號控制角度,周期為20ms(50Hz),脈寬范圍為0.5ms~2.5ms(對應(yīng)0°~180°)。
代碼示例:
void Servo_SetAngle(float angle) { uint16_t pwmval = 500 + (angle / 180.0) * 2000; // 脈寬計算 TIM_SetCompare1(TIM2, pwmval); }
2. 電機調(diào)速
硬件:BLDC電機、UB510驅(qū)動器、STM32F103RCT6開發(fā)板。
原理:通過PWM信號控制電機驅(qū)動器的SV引腳,占空比范圍為0%~100%,頻率建議為1kHz~20kHz。
代碼示例:
void Motor_SetSpeed(uint8_t speed) { |
uint16_t pwmval = (speed / 100.0) * 1000; // 占空比計算 |
TIM_SetCompare1(TIM2, pwmval); |
} |
3. LED調(diào)光
硬件:LED、限流電阻、STM32F103RCT6開發(fā)板。
原理:通過PWM信號控制LED亮度,占空比越高,LED越亮。
代碼示例:
void LED_SetBrightness(uint8_t brightness) { |
uint16_t pwmval = (brightness / 100.0) * 899; // 占空比計算 |
TIM_SetCompare1(TIM2, pwmval); |
} |
五、注意事項
引腳沖突:避免同時啟用同一引腳的不同功能(如USART與PWM)。
時鐘配置:確保APB1/APB2時鐘已正確配置,否則PWM頻率可能異常。
驅(qū)動能力:高負載應(yīng)用需通過驅(qū)動電路增強引腳驅(qū)動能力。
調(diào)試工具:使用示波器或邏輯分析儀監(jiān)測PWM信號,確保波形正確。
六、總結(jié)
STM32F103RCT6的PWM功能通過多個定時器通道實現(xiàn),支持標準PWM和高級PWM模式,適用于電機控制、LED調(diào)光、舵機驅(qū)動等多種場景。通過合理配置引腳復(fù)用、定時器參數(shù)和輸出模式,開發(fā)者可以輕松實現(xiàn)高精度的PWM信號輸出。本文詳細介紹了PWM引腳定義、功能配置及實際應(yīng)用案例,為嵌入式系統(tǒng)開發(fā)提供了全面的參考。
責(zé)任編輯:David
【免責(zé)聲明】
1、本文內(nèi)容、數(shù)據(jù)、圖表等來源于網(wǎng)絡(luò)引用或其他公開資料,版權(quán)歸屬原作者、原發(fā)表出處。若版權(quán)所有方對本文的引用持有異議,請聯(lián)系拍明芯城(marketing@iczoom.com),本方將及時處理。
2、本文的引用僅供讀者交流學(xué)習(xí)使用,不涉及商業(yè)目的。
3、本文內(nèi)容僅代表作者觀點,拍明芯城不對內(nèi)容的準確性、可靠性或完整性提供明示或暗示的保證。讀者閱讀本文后做出的決定或行為,是基于自主意愿和獨立判斷做出的,請讀者明確相關(guān)結(jié)果。
4、如需轉(zhuǎn)載本方擁有版權(quán)的文章,請聯(lián)系拍明芯城(marketing@iczoom.com)注明“轉(zhuǎn)載原因”。未經(jīng)允許私自轉(zhuǎn)載拍明芯城將保留追究其法律責(zé)任的權(quán)利。
拍明芯城擁有對此聲明的最終解釋權(quán)。