初级会员

- 积分
- 50
- 金钱
- 50
- 注册时间
- 2021-3-30
- 在线时间
- 11 小时
|
1金钱
使用407调试pwm互补输出,主输出有波形,但是互补管脚一直没有输出,看了好久没发现问题,请教大大们void HAL_TIM1_CH2_PWM_Init(void)
{
TIM_HandleTypeDef TIM1_Handler;
TIM_OC_InitTypeDef TIM1_CH2Handler;
TIM_MasterConfigTypeDef sMasterConfig;
TIM_BreakDeadTimeConfigTypeDef sBreakDeadTimeConfig;
//TIM1_Handler.Channel = HAL_TIM_ACTIVE_CHANNEL_1;
TIM1_Handler.Instance=TIM1;
TIM1_Handler.Init.Prescaler=84-1;
TIM1_Handler.Init.CounterMode=TIM_COUNTERMODE_UP;
TIM1_Handler.Init.Period=500-1;
TIM1_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;
TIM1_Handler.Init.RepetitionCounter = 0;
HAL_TIM_PWM_Init(&TIM1_Handler);
sMasterConfig.MasterOutputTrigger = TIM_TRGO_RESET;
sMasterConfig.MasterSlaveMode = TIM_MASTERSLAVEMODE_DISABLE;
if (HAL_TIMEx_MasterConfigSynchronization(&htim1, &sMasterConfig) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
sBreakDeadTimeConfig.OffStateRunMode = TIM_OSSR_DISABLE;
sBreakDeadTimeConfig.OffStateIDLEMode = TIM_OSSI_DISABLE;
sBreakDeadTimeConfig.LockLevel = TIM_LOCKLEVEL_OFF;
sBreakDeadTimeConfig.DeadTime = 0;
sBreakDeadTimeConfig.BreakState = TIM_BREAK_DISABLE;
sBreakDeadTimeConfig.BreakPolarity = TIM_BREAKPOLARITY_HIGH;
sBreakDeadTimeConfig.AutomaticOutput = TIM_AUTOMATICOUTPUT_DISABLE;
if (HAL_TIMEx_ConfigBreakDeadTime(&htim1, &sBreakDeadTimeConfig) != HAL_OK)
{
_Error_Handler(__FILE__, __LINE__);
}
TIM1_CH2Handler.OCMode=TIM_OCMODE_PWM1;
TIM1_CH2Handler.Pulse=(500-1)/2;
TIM1_CH2Handler.OCPolarity=TIM_OCPOLARITY_HIGH;
TIM1_CH2Handler.OCIdleState = TIM_OCIDLESTATE_SET;
TIM1_CH2Handler.OCFastMode = TIM_OCFAST_DISABLE;
TIM1_CH2Handler.OCNPolarity = TIM_OCNPOLARITY_HIGH;
TIM1_CH2Handler.OCNIdleState = TIM_OCNIDLESTATE_RESET;
Print_PWMReg();
HAL_TIM_PWM_ConfigChannel(&TIM1_Handler,&TIM1_CH2Handler,TIM_CHANNEL_2);
HAL_TIM_PWM_Start(&TIM1_Handler,TIM_CHANNEL_2);
HAL_TIMEx_PWMN_Start(&TIM1_Handler,TIM_CHANNEL_2);
Print_PWMReg();
}
void HAL_TIM_PWM_MspInit(TIM_HandleTypeDef *htim)
{
GPIO_InitTypeDef GPIO_Initure;
if(htim->Instance == TIM1)
{
__HAL_RCC_TIM1_CLK_ENABLE();
__HAL_RCC_GPIOE_CLK_ENABLE();
GPIO_Initure.Pin= GPIO_PIN_11|GPIO_PIN_10;
GPIO_Initure.Mode=GPIO_MODE_AF_PP;
GPIO_Initure.Pull=GPIO_PULLDOWN;
GPIO_Initure.Speed=GPIO_SPEED_HIGH;
GPIO_Initure.Alternate= GPIO_AF1_TIM1;
HAL_GPIO_Init(GPIOE,&GPIO_Initure);
}
}
|
|