野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10125|回复: 1

定时器2通道1和2能工作,为什么通道3不能。。。。

[复制链接]
发表于 2016-4-16 16:58:31 | 显示全部楼层 |阅读模式
定时器2通道1和2能工作,为什么通道3不能。。。。
  1. void TIM2_Config_task(void *pdata)
  2. {  
  3.         while(1)
  4.   {               
  5.                
  6.                 GPIO_InitTypeDef GPIO_InitStructure;
  7.                
  8.           TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  9.           TIM_OCInitTypeDef  TIM_OCInitStructure;                       
  10.                
  11.              /*******************TIM2_GPIO_ConfigèÎÎñ******************/       
  12.                
  13.                 /* GPIOB clock enable */
  14.                 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  15.                
  16.     if(clas=='a')
  17.                 {
  18.                 GPIOA->CRL &=0X00000000;
  19.                 GPIO_InitStructure.GPIO_Pin =  GPIO_Pin_0;                /*ÅäÖÃPWMμ½PA0éÏ*/

  20.                 }
  21.                 else if (clas=='b')
  22.                 {       
  23.                 GPIOA->CRL &=0X00000000;       
  24.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1 ;   /*ÅäÖÃPWMμ½PA1éÏ*/
  25.                 }
  26.                 else if (clas=='c')
  27.                 {
  28.                 GPIOA->CRL &=0X00000000;       
  29.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 ;   /*ÅäÖÃPWMμ½PA2éÏ*/
  30.                 }
  31.                 else if (clas=='0')
  32.                 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2;
  33.                 clas=1;
  34.                
  35.                 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;                    // ¸′óÃíÆíìêä3ö
  36.                 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  37.                 GPIO_Init(GPIOA, &GPIO_InitStructure);
  38.                
  39.                  
  40.               /*******************TIM2_Mode_ConfigèÎÎñ*****************/               
  41.        
  42.                 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);                                         //ê1ÄüTIM2ê±Öó

  43.                 /* »ù±¾¶¨ê±Æ÷ÅäÖà */                 
  44.                 TIM_TimeBaseStructure.TIM_Period = 255;                                                                 //챶¨ê±Æ÷′ó0¼Æêyμ½255£¬¼′Îa266′Σ¬Îaò»¸ö¶¨ê±ÖüÆú589
  45.                 TIM_TimeBaseStructure.TIM_Prescaler = 493;                                                                    //éèÖÃÔ¤·ÖÆμ£o
  46.                 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1 ;                        //éèÖÃê±Öó·ÖÆμÏμêy£o2»·ÖÆμ(ÕaàïóÃ2»μ½)
  47.                 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;          //ÏòéϼÆêyÄ£ê½
  48.                 TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);

  49.                 /* PWMÄ£ê½ÅäÖà */
  50.                 TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;                                            //ÅäÖÃÎaPWMÄ£ê½1
  51.                 TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;        //ê1Äüêä3ö
  52.                 TIM_OCInitStructure.TIM_Pulse = 0;                                                                                                          //éèÖÃ3õê¼PWMÂö3å¿í¶èÎa0       
  53.                 TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;            //챶¨ê±Æ÷¼ÆêyÖμD¡óúCCR1_Valê±Îaμíμçƽ

  54.                 TIM_OC1Init(TIM2, &TIM_OCInitStructure);                                                                                 //ê1Äüí¨μà1
  55.                 TIM_OC1PreloadConfig(TIM2, TIM_OCPreload_Enable);                                                //ê1ÄüԤװÔØ       
  56.        
  57.                 TIM_OC2Init(TIM2, &TIM_OCInitStructure);                    //ê1Äüí¨μà2
  58.                 TIM_OC2PreloadConfig(TIM2, TIM_OCPreload_Enable);                                                //ê1ÄüԤװÔØ       

  59.     TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
  60.                 TIM_OCInitStructure.TIM_Pulse=500;
  61.                 TIM_OC3Init(TIM2, &TIM_OCInitStructure);                    //ê1Äüí¨μà3
  62.                 TIM_OC3PreloadConfig(TIM2, TIM_OCPreload_Enable);                                                //ê1ÄüԤװÔØ
  63.                
  64.         //        TIM_OC4Init(TIM2, &TIM_OCInitStructure);                    //ê1Äüí¨μà4
  65.         //        TIM_OC4PreloadConfig(TIM2, TIM_OCPreload_Enable);                                                //ê1ÄüԤװÔØ       

  66.                 TIM_ARRPreloadConfig(TIM2, ENABLE);                                                                                                         //ê1ÄüTIM2ÖØÔؼÄ′æÆ÷ARR

  67.                 /* TIM2 enable counter */
  68.                 TIM_Cmd(TIM2, ENABLE);                                                                                                   //ê1Äü¶¨ê±Æ÷2       
  69.        
  70.                 TIM_ITConfig(TIM2,TIM_IT_Update, ENABLE);                                                                                //ê1ÄüupdateÖD¶Ï
  71.                
  72.                 OSTaskCreate(NVIC_Config_PWM_task,(void*)0,
  73.                             (OS_STK*)&NVIC_Config_PWM_TASK_STK
  74.                       [NVIC_Config_PWM_STK_SIZE-1],
  75.                             NVIC_Config_PWM_TASK_PRIO);                                                                                                                                                                        //ÅäÖÃÖD¶ÏóÅÏ輶       
  76.           OSTaskDel(OS_PRIO_SELF);
  77.          // OSTimeDly(1);
  78.   }
  79. }
复制代码


回复

使用道具 举报

发表于 2016-4-16 17:41:39 | 显示全部楼层
代码bug帮顶                ,这个需要靠自己解决
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 15:28 , Processed in 0.028930 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表