標(biāo)題: 自己瞎玩了個(gè)stm32出PWM脈波的程序,用按鍵控制改變PWM波 [打印本頁]

作者: xiaolangwj    時(shí)間: 2017-6-27 10:05
標(biāo)題: 自己瞎玩了個(gè)stm32出PWM脈波的程序,用按鍵控制改變PWM波
直流電機(jī)可能需要控制速度,自己做了個(gè)小車,通過按鍵來控制直流電機(jī)的轉(zhuǎn)速。
我用的事stm32f103的型號(hào)。
附上一段主要的程序。
static void TIM3_Mode_Config(void)
{
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_OCInitTypeDef  TIM_OCInitStructure;

  /* Time base configuration */                 
  TIM_TimeBaseStructure.TIM_Period = 999;     
  TIM_TimeBaseStructure.TIM_Prescaler = 0;         
  TIM_TimeBaseStructure.TIM_ClockDivision = 0;
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
  TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

  /* PWM1 Mode configuration: Channel1 */
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;           
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;        
  TIM_OCInitStructure.TIM_Pulse = 375;         
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;
  TIM_OC1Init(TIM3, &TIM_OCInitStructure);
  TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);

  /* PWM1 Mode configuration: Channel2 */
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_Pulse = 375;         
  TIM_OC2Init(TIM3, &TIM_OCInitStructure);         
  TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);

  TIM_ARRPreloadConfig(TIM3, ENABLE);               
  /* TIM3 enable counter */
  TIM_Cmd(TIM3, ENABLE);               
}

void TIM3_Mode_REConfig(void)
{
        //TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_OCInitTypeDef  TIM_OCInitStructure;
        int CCR1_Val[] = {0,100,200,300,400,500,600,700,800,900};         
  int CCR2_Val[] = {0,100,200,300,400,500,600,700,800,900};
        
        printf("111=%u\n",CCR1_Val[shift1]);
        TIM_Cmd(TIM3, DISABLE);               
  /* PWM1 Mode configuration: Channel1 */
  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;         
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;        
  TIM_OCInitStructure.TIM_Pulse = CCR1_Val[shift1];
  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;

  TIM_OC1Init(TIM3, &TIM_OCInitStructure);
  TIM_OC1PreloadConfig(TIM3, TIM_OCPreload_Enable);

  /* PWM1 Mode configuration: Channel2 */
  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
  TIM_OCInitStructure.TIM_Pulse = CCR2_Val[shift2];
  TIM_OC2Init(TIM3, &TIM_OCInitStructure);
  TIM_OC2PreloadConfig(TIM3, TIM_OCPreload_Enable);
  TIM_ARRPreloadConfig(TIM3, ENABLE);               
  /* TIM3 enable counter */
  TIM_Cmd(TIM3, ENABLE);                  
        printf("222\n");
}

發(fā)的比較著急,大家有問題留言。

1鍵值改變PWM脈寬.7z

181.35 KB, 下載次數(shù): 36, 下載積分: 黑幣 -5


作者: xiaolangwj    時(shí)間: 2017-6-27 10:05
建議下載附件調(diào)試。




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1