1、使能定時器3和相關IO口時鍾。
使能定時器3時鍾:RCC_APB1PeriphClockCmd();
使能GPIOB時鍾:RCC_APB2PeriphClockCmd();
2、初始化IO口為復用功能輸出。函數:GPIO_Init();
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
3、這里我們是要把PB5用作定時器的PWM輸出引腳,所以要重映射配置,
所以需要開啟AFIO時鍾。同時設置重映射。
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_PinRemapConfig(GPIO_PartialRemap_TIM3, ENABLE);
4、 初始化定時器:ARR預裝載值,PSC預分頻系數等:TIM_TimeBaseInit();
5、 初始化輸出比較參數:TIM_OC2Init();
6、 使能預裝載寄存器: TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
7、 使能定時器。TIM_Cmd();
8、 不斷改變比較值CCRx,達到不同的占空比效果:TIM_SetCompare2();