ch32v208配置PWM输出没有输出

使用官方的 PWM_Output例程进行修改,换成定时器5的,用示波器看也没有方波,是我配置错了吗?
image.png


//系统时钟:#define SYSCLK_FREQ_144MHz_HSE  144000000

//传入参数 : TIM1_PWMOut_Init( 100-1, 14400-1, 50 );

void TIM5_PWMOut_Init(u16 arr, u16 psc, u16 ccp)

{

GPIO_InitTypeDef GPIO_InitStructure={0};

TIM_OCInitTypeDef TIM_OCInitStructure={0};

TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure={0};


RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA|RCC_APB2Periph_AFIO, ENABLE );

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5, ENABLE);


GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;

GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;

GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;

GPIO_Init( GPIOA, &GPIO_InitStructure );


TIM_TimeBaseInitStructure.TIM_Period = arr;

TIM_TimeBaseInitStructure.TIM_Prescaler = psc;

TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;

TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;

TIM_TimeBaseInit( TIM5, &TIM_TimeBaseInitStructure);


TIM_OCStructInit(&TIM_OCInitStructure);

    TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;

TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;

TIM_OCInitStructure.TIM_Pulse = ccp;

TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;

TIM_OC1Init( TIM5, &TIM_OCInitStructure );


TIM_CtrlPWMOutputs(TIM5, ENABLE );

TIM_OC1PreloadConfig( TIM5, TIM_OCPreload_Disable );

TIM_ARRPreloadConfig( TIM5, ENABLE );

TIM_Cmd( TIM5, ENABLE );

}


您好,大概看了一下程序配置应该是没有问题的,可以注意一下工程文件的选择是否正确,ld文件FLASH、RAM的大小配置、启动文件以及相关宏定义的选择,如下图1。附件是我的测试例程,使用TIM5_CH1(PA0)测试是没有问题的,你可以参考一下。后续若有问题,可通过邮箱(lzs@wch.cn)和我沟通。

icon_rar.gifCH32V208 PWM(TIM5_CH1).zip

image.png

图1


只有登录才能回复,可以选择微信账号登录