初级会员

- 积分
- 56
- 金钱
- 56
- 注册时间
- 2020-6-18
- 在线时间
- 22 小时
|
2金钱
最近想学习一下定时器的主从模式来输出定量的PWM,在不配置定时器主模式的情况下,输出PWM正常,一旦配置了主模式,输出就出错。想请教一下各位大神这是什么原因?- void TIM_Master_Config(uint32_t freq,uint32_t period)
- {
- TIM_ClockConfigTypeDef sClockSourceConfig;
- TIM_MasterConfigTypeDef sMasterConfig;
- TIM_OC_InitTypeDef sConfigOC;
- /***********定时器和GPIO使能*******************/
- __HAL_RCC_TIM3_CLK_ENABLE();
- __HAL_RCC_GPIOA_CLK_ENABLE();
-
- /**********定时器引脚配置********************/
- GPIO_InitTypeDef gpio_initstruct;
- gpio_initstruct.Pin=GPIO_PIN_6;
- gpio_initstruct.Mode=GPIO_MODE_AF_PP;
- gpio_initstruct.Alternate=GPIO_AF2_TIM3;
- HAL_GPIO_Init(GPIOA,&gpio_initstruct);
-
-
- /**********定时器时基配置********************/
- htim3.Instance=TIM3;
- htim3.Init.Prescaler=90-1;//设置时钟分频频率
- htim3.Init.CounterMode=TIM_COUNTERMODE_UP;//递增计数
- htim3.Init.Period=5000;//设置周期
- htim3.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;//设置捕获比较不分频
- HAL_TIM_PWM_Init(&htim3);
-
- /***********定时器主模式配置*******************/
- sMasterConfig.MasterOutputTrigger=TIM_TRGO_UPDATE;//跟新触发输出
- sMasterConfig.MasterSlaveMode=TIM_MASTERSLAVEMODE_ENABLE;//开启主从模式
- HAL_TIMEx_MasterConfigSynchronization(&htim3,&sMasterConfig);
-
- /**********定时器输出设置********************/
- sConfigOC.OCMode=TIM_OCMODE_PWM1;//设置PWM模式为PWM1
- sConfigOC.Pulse=2000;//设置PWM占空比
- sConfigOC.OCPolarity=TIM_OCPOLARITY_HIGH;//设置PWM空闲状态引脚拉低
- HAL_TIM_PWM_ConfigChannel(&htim3,&sConfigOC,TIM_CHANNEL_1);
-
- HAL_TIM_PWM_Start(&htim3,TIM_CHANNEL_1);
- }
复制代码
|
|