打印

GD32F105VCT6芯片定时器8通道3的PWM输出

[复制链接]
1911|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xinuaile2012|  楼主 | 2017-8-8 10:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_TIMER8, ENABLE);
RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_GPIOC , ENABLE);
RCC_APB2PeriphClock_Enable(RCC_APB2PERIPH_AF , ENABLE);

void TIM8_GPIO_Configuration(void)
{
        GPIO_InitPara GPIO_InitStructure;

        /* PC8设置为功能脚(PWM) */
        GPIO_InitStructure.GPIO_Pin = CHARGE_PWM_PIN;
        GPIO_InitStructure.GPIO_Mode = GPIO_MODE_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_SPEED_50MHZ;

        GPIO_Init(CHARGE_PWM_PORT, &GPIO_InitStructure);
}


void TIM8_PWM_Configuration(void)
{
        TIMER_BaseInitPara TIMER_TimeBaseStructure;
        TIMER_OCInitPara TIMER_OCInitStructure;

    /* TIMER8  configuration */
    TIMER_DeInit(TIMER8);
    //TIMERxCLK = SystemCoreClock / 72 = 1MHz
    TIMER_TimeBaseStructure.TIMER_Prescaler     = 71;
    TIMER_TimeBaseStructure.TIMER_CounterMode   = TIMER_COUNTER_UP;
    //TIMERx Period 10000 (1MHz / 10000 = 100Kz)
    TIMER_TimeBaseStructure.TIMER_Period        = 9999;
    TIMER_TimeBaseStructure.TIMER_ClockDivision = TIMER_CDIV_DIV1;
    TIMER_BaseInit(TIMER8,&TIMER_TimeBaseStructure);

    /* CHx Configuration in PWM mode */
    TIMER_OCInitStructure.TIMER_OCMode      = TIMER_OC_MODE_PWM1;
    TIMER_OCInitStructure.TIMER_OCPolarity  = TIMER_OC_POLARITY_HIGH;
    TIMER_OCInitStructure.TIMER_OutputState = TIMER_OUTPUT_STATE_ENABLE;
    TIMER_OCInitStructure.TIMER_OCIdleState = TIMER_OC_IDLE_STATE_RESET;

    //TIMERx Channel3 duty cycle = (2500 / 10000) * 100 = 25%
    TIMER_OCInitStructure.TIMER_Pulse = 2499;
    TIMER_OC3_Init(TIMER8, &TIMER_OCInitStructure);
    TIMER_OC3_Preload(TIMER8,TIMER_OC_PRELOAD_DISABLE);

    /* Auto-reload preload enable */
    TIMER_CARLPreloadConfig(TIMER8,ENABLE);
    /* TIMER enable counter*/
    TIMER_Enable(TIMER8, ENABLE );
}


上面的代码有哪出问题?

在引脚上没有PWM输出
沙发
xinuaile2012|  楼主 | 2017-8-8 15:54 | 只看该作者
GD32用的人很少吗?问题都没法解决。

使用特权

评论回复
板凳
AdaA| | 2017-8-8 20:36 | 只看该作者
xinuaile2012 发表于 2017-8-8 15:54
GD32用的人很少吗?问题都没法解决。

从谁那申请的样品,找 对应售后

使用特权

评论回复
地板
xinuaile2012|  楼主 | 2017-8-9 11:35 | 只看该作者
找了售后,还是没有解决。

使用特权

评论回复
5
禺日| | 2017-8-14 13:27 | 只看该作者
还是用STM32的吧,GD的代理只顾着推销芯片,不管技术支持

使用特权

评论回复
6
wzw2134| | 2017-8-15 14:52 | 只看该作者
带刹车功能的定时器需要调用下面这个函数后才会有PWM输出
void TIMER_CtrlPWMOutputs( TIMER_TypeDef* TIMERx , TypeState NewValue )

使用特权

评论回复
7
xinuaile2012|  楼主 | 2017-9-25 14:45 | 只看该作者
最后直接换成Timer3来实现。

使用特权

评论回复
8
Houtz| | 2017-9-27 16:59 | 只看该作者
高级定时器1和8要加上。TIM_CtrlPWMOutputs(TIM1, ENABLE);

使用特权

评论回复
9
Houtz| | 2017-9-27 17:11 | 只看该作者
有问题可以找FAE  375880228。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝