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

2019-07-20 22:40发布

STM32F407 PWM实验,现在想用一个IO口,输出不同频率和占空比的的PWM,改如何实现? 原子哥的教程只是TIM14 CH1,控制灯的的亮暗,小弟新手啊,
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
正点原子
1楼-- · 2019-07-21 03:51
hackathos 发表于 2016-4-16 08:16
原子哥啊,你怎么就是不给指点呢

修改PSC和ARR就可以修改频率。
修改CCRx就可以修改占空比。

hpeng1874
2楼-- · 2019-07-21 08:50
 精彩回答 2  元偷偷看……
hackathos
3楼-- · 2019-07-21 11:06
 精彩回答 2  元偷偷看……
hackathos
4楼-- · 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,没有变化,怎么改呀
hackathos
5楼-- · 2019-07-21 18:48
程序一直都是 case  KEY0_PRES:    ,一直都这个波形,按不按也没反应
正点原子
6楼-- · 2019-07-21 23:07
hackathos 发表于 2016-4-15 17:34
程序一直都是 case  KEY0_PRES:    ,一直都这个波形,按不按也没反应

楼主再多写几个月代码先。
练练C语言也可以

一周热门 更多>