打印

TIM1 的7个pwm引脚 唯独通道2的正没有输出,请教?

[复制链接]
2260|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chunhuaqioushi|  楼主 | 2010-8-17 17:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 chunhuaqioushi 于 2010-8-17 17:17 编辑

使用芯片是stm32f103c8t6 最后标识是chn014
下面是我的初始化,初始化后通道1 3 的正反输出都是正常的,通道2的反也是正常的,只有通道2的正是没有波形的,知道的指导下吧

//---------------------------------------------------------------------------------
static void BldcGpioInitial(void){
        GPIO_InitTypeDef GPIO_InitStructure;

        /* GPIOA Configuration: Channel 1, 2 and 3 as alternate function push-pull */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_9 | GPIO_Pin_10;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
        GPIO_Init(GPIOA, &GPIO_InitStructure);
         
        /* GPIOB Configuration: Channel 1N, 2N and 3N as alternate function push-pull */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14 | GPIO_Pin_15;
        GPIO_Init(GPIOB, &GPIO_InitStructure);
         
        /* GPIOB Configuration: BKIN pin */
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
        GPIO_Init(GPIOB, &GPIO_InitStructure);  
        //LED Configuration
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2|GPIO_Pin_10|GPIO_Pin_11;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);  
        GPIO_ResetBits(GPIOB,GPIO_Pin_2|GPIO_Pin_10|GPIO_Pin_11);//关闭灯
        //MOTOR ADDRESS  
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_2MHz;
        GPIO_Init(GPIOB, &GPIO_InitStructure);            
}
//-------------------------------------------------------------------------------
static void BldcRCCInitial(void){

        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1 | RCC_APB2Periph_GPIOA |RCC_APB2Periph_GPIOB|\
        RCC_APB2Periph_AFIO, ENABLE);
}
static void BldcNVICInitial(void){
        /*
        NVIC_InitTypeDef NVIC_InitStructure;
        NVIC_InitStructure.NVIC_IRQChannel = TIM1_TRG_COM_IRQn;
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 1;
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
        NVIC_Init(&NVIC_InitStructure);
        */

}
static void BldcTimInitial(void){
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_OCInitTypeDef  TIM_OCInitStructure;
        TIM_BDTRInitTypeDef TIM_BDTRInitStructure;
         

        /* Time Base configuration */

        TIM_TimeBaseStructure.TIM_Prescaler = 2;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseStructure.TIM_Period = 1000;
        TIM_TimeBaseStructure.TIM_ClockDivision = 0;
        TIM_TimeBaseStructure.TIM_RepetitionCounter = 0;
         
        TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
         

        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
        TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
        TIM_OCInitStructure.TIM_OutputNState = TIM_OutputNState_Enable;
        TIM_OCInitStructure.TIM_Pulse = 500;
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
        TIM_OCInitStructure.TIM_OCNPolarity = TIM_OCNPolarity_High;
        TIM_OCInitStructure.TIM_OCIdleState = TIM_OCIdleState_Set;
        TIM_OCInitStructure.TIM_OCNIdleState = TIM_OCNIdleState_Set;
         
        TIM_OC1Init(TIM1, &TIM_OCInitStructure);
         
        TIM_OCInitStructure.TIM_Pulse = 500;
        TIM_OC2Init(TIM1, &TIM_OCInitStructure);
         
        TIM_OCInitStructure.TIM_Pulse = 500;
        TIM_OC3Init(TIM1, &TIM_OCInitStructure);
         

        TIM_BDTRInitStructure.TIM_OSSRState = TIM_OSSRState_Enable;
        TIM_BDTRInitStructure.TIM_OSSIState = TIM_OSSIState_Enable;
        TIM_BDTRInitStructure.TIM_LOCKLevel = TIM_LOCKLevel_OFF;
        TIM_BDTRInitStructure.TIM_DeadTime = 1;
        TIM_BDTRInitStructure.TIM_Break = TIM_Break_Disable;
        TIM_BDTRInitStructure.TIM_BreakPolarity = TIM_BreakPolarity_High;
        TIM_BDTRInitStructure.TIM_AutomaticOutput = TIM_AutomaticOutput_Enable;
         
        TIM_BDTRConfig(TIM1, &TIM_BDTRInitStructure);
         

         
        // TIM1 counter enable  
        TIM_Cmd(TIM1, ENABLE);
        // Main Output Enable  
        TIM_CtrlPWMOutputs(TIM1, ENABLE);


}
沙发
jgphu| | 2010-8-17 17:06 | 只看该作者
用的是哪个型号的?“

使用特权

评论回复
板凳
chunhuaqioushi|  楼主 | 2010-8-17 17:16 | 只看该作者
使用的是stm32f103c8t6    最后标识是chn014

使用特权

评论回复
地板
贝多芬爵士| | 2011-5-28 16:34 | 只看该作者
是不是刹车信号有问题啊?或者你的与非门芯片的问题

使用特权

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

本版积分规则

5

主题

24

帖子

0

粉丝