pwm
(1)
WM 来控制 DS0 的亮度。下面我们介绍配置步骤:
1)开启 TIM1 时钟,配置 PA8 为复用输出.
配置 PA8 为复用输出、TIM1_CH1 通道将使用 PA8 的复用功能作为输出。
库函数使能 TIM3 时钟的方法是:
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //复用推挽输出
2)设置 TIM1 的 ARR 和 PSC。
这在库函数是通过 TIM_TimeBaseInit 函数实现的。
3)设置 TIM1_CH1 的 PWM 模式及通道方向, 使能 TIM1 的 CH1 输出
方法是:
TIM_OCInitTypeDef TIM_OCInitStructure;
TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM2; //选择 PWM 模式 2
TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable; //比较输出使能
TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High; //输出极性高
TIM_OC1Init(TIM1, &TIM_OCInitStructure); //初始化 TIM1 OC1
通道几就是OC.几
4)使能 TIM1。
TIM_Cmd(TIM1, ENABLE); //使能 TIM1
5)设置 MOE输出 函数为:
TIM_CtrlPWMOutputs(TIM1,ENABLE);// MOE 主输出使能
6)修改 TIM1_CCR1 来控制占空比。
修改 TIM1_CCR1 占空比的函数是:
void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1);
对于其他通道,分别有一个函数名字,函数格式为 TIM_SetComparex(x=1,2,3,4)。