找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2869|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

自己瞎玩了個stm32出PWM脈波的程序,用按鍵控制改變PWM波

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:215023 發(fā)表于 2017-6-27 10:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
直流電機(jī)可能需要控制速度,自己做了個小車,通過按鍵來控制直流電機(jī)的轉(zhuǎn)速。
我用的事stm32f103的型號。
附上一段主要的程序。
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

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:215023 發(fā)表于 2017-6-27 10:05 | 只看該作者
建議下載附件調(diào)試。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表