求助,STM32F407的PWM输出有问题

2019-07-20 18:37发布

本帖最后由 liujia 于 2016-11-25 17:19 编辑

求助,原子的F407PWM程序,例程是PF9  TIM14有波形输出 ,我自己加个PF8直接copy过来,就把端口改了,为什么PF8的TIM13没有波形输出了

int main(void)
{

        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
        uart_init(115200);
         
        PWM_Init(1700,4-1);        

      while(1)
        {
                  

        TIM_SetCompare1(TIM14,100);        
        TIM_SetCompare1(TIM13,100);        
               
        }
}

void PWM_Init(u32 arr,u32 psc)
{                                                         
        
        GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_OCInitTypeDef  TIM_OCInitStructure;
        
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM14,ENABLE);         
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM13,ENABLE);           

        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);         
        GPIO_PinAFConfig(GPIOF,GPIO_PinSource9,GPIO_AF_TIM14);
        GPIO_PinAFConfig(GPIOF,GPIO_PinSource8,GPIO_AF_TIM13);
        
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;         
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;         
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;      
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;   
        GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;      
        GPIO_Init(GPIOF,&GPIO_InitStructure);            
         
        TIM_TimeBaseStructure.TIM_Prescaler=psc;  
        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
        TIM_TimeBaseStructure.TIM_Period=arr;
        TIM_TimeBaseStructure.TIM_ClockDivision=TIM_CKD_DIV1;
        
        TIM_TimeBaseInit(TIM13,&TIM_TimeBaseStructure);
        TIM_TimeBaseInit(TIM14,&TIM_TimeBaseStructure);

        TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;
         TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;
        TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_Low;

        TIM_OC1Init(TIM13, &TIM_OCInitStructure);  
        TIM_OC1Init(TIM14, &TIM_OCInitStructure);
        
        
        TIM_OC1PreloadConfig(TIM13, TIM_OCPreload_Enable);
        TIM_OC1PreloadConfig(TIM14, TIM_OCPreload_Enable);
        
       TIM_ARRPreloadConfig(TIM13,ENABLE);
      TIM_ARRPreloadConfig(TIM14,ENABLE);
        
        TIM_Cmd(TIM13, ENABLE);  
        TIM_Cmd(TIM14, ENABLE);
                                                                  
}  



友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
刘明洲
1楼-- · 2019-07-21 19:42
 精彩回答 2  元偷偷看……
liujia
2楼-- · 2019-07-21 20:33
原_子_哥门徒 发表于 2016-11-24 16:20
算了代码清理过程文件打包发到论坛上,让我们仔细研究下吧.

非常感谢你的帮助,蛮热情的,谢谢
liujia
3楼-- · 2019-07-21 23:43
刘明洲 发表于 2016-11-24 17:35
你的程序是由硬件决定的,看数据手册PA8可以做pwm映射吗?应该不可以的。由于PA9的映射有pwm的所以可以,如 ...

配置问题,已经改完了

一周热门 更多>