stm32f407的定时器4用PE0脉冲计数是遇到了问题,相似的程序time2的PA15可以,程序源码如下,各位给看看,卡了好几天,多谢!

2019-07-20 23:47发布

void TIM4_Int_Init(u32 arr,u16 psc)
{
       
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseInitStructure;
        GPIO_InitTypeDef              GPIO_InitStructure;
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE);  ///使能定时器时钟
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOE, ENABLE);//使能E口时钟

        //PE0口初始化
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
        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_DOWN;
        GPIO_Init(GPIOE, &GPIO_InitStructure);

        //PE0口复用功能使能
        GPIO_PinAFConfig(GPIOE,GPIO_PinSource0,GPIO_AF_TIM4);
       
        //定时器4初始化
        TIM_TimeBaseInitStructure.TIM_Period = arr;        
        TIM_TimeBaseInitStructure.TIM_Prescaler=psc;  
        TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up;
        TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;
        TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructure);
               
        TIM_TIxExternalClockConfig(TIM4, TIM_TIxExternalCLK1Source_TI1, TIM_ICPolarity_Rising, 0);

        TIM_CounterModeConfig(TIM4,TIM_CounterMode_Up);

        TIM_SetCounter(TIM4,0);

        TIM_Cmd(TIM4,ENABLE);       
}

0条回答

一周热门 更多>