• PWM输出


    周期由自动重装载寄存器ARR寄存器来决定的,捕获/比较寄存器CCRx来决定占空比!!!

    工作过程描述:首先假设输出为向上计数,且设置CC1P位为0高电平有效,当设置为模式1,即计数器CNT的数值小于捕获比较寄存器CCR1的值时,电平输出高电平,CNT数值大于CCR1时输出低电平,使能CC1E,最后就输出相应电平信号。

     bsp_pwm_out.c文件

    bsp_pwm_out.h文件

    main.c文件

    void PWM_OUT_POWDER_CONTROL(void)
    {
     u16 ledOpvmval = 0;
     u8 dir =1;
     while(1)//实现比较值从0-300递增,到300后从300-0递减,循环
     {
      delay(10);
      if(dir)
       ledOpvmval++;//dir==1 ledOpwmval递增
      else
       ledOpvmval--;//dir==0 ledOpwmval递减
      if(ledOpvmval >300)
       dir = 0;     //ledOpvmval到达300后,方向为递减
      if(ledOpvmval==0)
       dir = 1;     //ledOpvmval递减到0后,方向改为递增
      TIM_SetCompare1(TIM14,ledOpvmval);
     }
    }

    int main()

    {

    TIM14_PWM_Init(500-1,84-1);//84M/84=1MHZ的计数频率,重载值500,所以PWM频率为1M/500=2KHZ,


     while(1)
     { 
       PWM_OUT_POWDER_CONTROL();
     }

    }

  • 相关阅读:
    [栈]
    [数据结构实验]学生成绩管理
    [数据结构实验]集合交并
    shapefile 转 geojson 文件类型
    ubuntu sublime text key
    opengl
    c++
    sublime text3 key
    ubuntu安装nvidia驱动
    全球国家svg边界svg
  • 原文地址:https://www.cnblogs.com/gary-guo/p/5650990.html
Copyright © 2020-2023  润新知