參考下:
void PWM_Init_TIM3_CH1(u16 arr, u16 psc)
{
//1、使能TIM3時鐘
RCC->APB1ENR |= 1 << 1;//使能TIM3時鐘
//2、配置對應引腳(PA6)的復用輸出功能
GPIOA->CRL &= 0XF0FFFFFF;//PA6清0
GPIOA->CRL |= 0X0B000000;//復用功能輸出(推挽50MHz輸出)
GPIOA->ODR |= 1 << 6;//PA6上拉
//3、設定計數器自動重裝值及是否分頻
TIM3->ARR = arr;//設定計數器自動重裝值(決定PWM的頻率)
TIM3->PSC = psc;//預分頻器 0為不分頻
//4、設置PWM的模式
TIM3->CCMR1 |= 7 << 4;//CH1 PWM2模式
TIM3->CCMR1 |= 1 << 3;//CH1預裝載使能
//5、輸出使能設置
TIM3->CCER |= 1 << 0;//輸入/捕獲1輸出使能
//6、自動重裝載預裝載允許位(ARPE) 及 定時器 使能
TIM3->CR1 = 0X0080;//ARPE使能
TIM3->CR1 |= 0X01;//使能定時器3
}
|