STM32F407PWM输出,,怎么实现占空比和频率可调

2019-07-20 22:40发布

STM32F407 PWM实验,现在想用一个IO口,输出不同频率和占空比的的PWM,改如何实现? 原子哥的教程只是TIM14 CH1,控制灯的的亮暗,小弟新手啊,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
9条回答
hackathos
2019-07-21 13:39
int main(void)
{
        u16 led0pwmval=0;   
        u8 dir=1;
        u8 key;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//éèÖÃÏμí3ÖD¶ÏóÅÏ輶·Ö×é2
        delay_init(168);  //3õê¼»ˉÑóê±oˉêy
        uart_init(115200);//3õê¼»ˉ′®¿ú2¨ìØÂêÎa115200
        while(1)
        {
                key=KEY_Scan(0);               
                   if(key)
                {                                                  
                        switch(key)
                        {                                 
                                case KEY0_PRES:       
                          TIM3_PWM_Init(500-1,84-1);
                         while(1) //êμÏÖ±è½ÏÖμ′ó0-300μYÔö£¬μ½300oó′ó300-0μY¼õ£¬Ñ-»·
            {
                   delay_ms(10);         
                  if(dir)led0pwmval++;//dir==1 led0pwmvalμYÔö
                  if(led0pwmval>300)dir=0;//led0pwmvalμ½′ï300o󣬷½ÏòÎaμY¼õ
       TIM_SetCompare1(TIM3,led0pwmval);        //DT¸Ä±è½ÏÖ죬DT¸ÄÕ¼¿Õ±è
            }
                    case KEY1_PRES:       
                          TIM3_PWM_Init(500-1,42-1);
                                //break;
                         while(1) //êμÏÖ±è½ÏÖμ′ó0-300μYÔö£¬μ½300oó′ó300-0μY¼õ£¬Ñ-»·
            {
                   delay_ms(10);         
                  if(dir)led0pwmval++;//dir==1 led0pwmvalμYÔö
                  if(led0pwmval>300)dir=0;//led0pwmvalμ½′ï300o󣬷½ÏòÎaμY¼õ
       TIM_SetCompare1(TIM3,led0pwmval);        //DT¸Ä±è½ÏÖ죬DT¸ÄÕ¼¿Õ±è
            }
               
      //break;
               
                         }
                       
                         
   }
                       
                }
        }

编程菜鸟,程序如下,用示波器来看,一直都是2Khz,没有变化,怎么改呀

一周热门 更多>