STM32F407ZG TIM5编码器模式求助

2019-07-20 12:35发布

参照着TIM3改的程序(且TIM3是正常工作的),但是改出的TIM5不正常,以下是修改的程序,麻烦大家帮我看看哪里不对了。

int main(void)
{
        u32 oldcnt5;
        uart_init(115200);
        delay_init(84);
        Encoder_Init();
        while(1)
        {
                delay_ms(10000);
                if(oldcnt5!=TIM5->CNT)
                 {
                         oldcnt5=TIM5->CNT;
                         printf("encoder5:%d ",oldcnt5);
                        TIM5->CNT=0;                         
                         printf(" ");
              }
      }
}

void Encoder_Init(void)
{
        GPIO_InitTypeDef         GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_ICInitTypeDef        TIM_ICInitStructure;
       
        RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM5,ENABLE);
        RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA,ENABLE);
       
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource0,GPIO_AF_TIM5);
        GPIO_PinAFConfig(GPIOA,GPIO_PinSource1,GPIO_AF_TIM5);
       
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;
        GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF;
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
        GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
        GPIO_InitStructure.GPIO_PuPd  = GPIO_PuPd_UP ;
        GPIO_Init(GPIOA,&GPIO_InitStructure);

       
        TIM_TimeBaseStructure.TIM_Period = 60000;
        TIM_TimeBaseStructure.TIM_Prescaler = 0;
        TIM_TimeBaseStructure.TIM_ClockDivision = 0;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
        TIM_TimeBaseInit(TIM5, &TIM_TimeBaseStructure);
       

        TIM_EncoderInterfaceConfig(TIM5, TIM_EncoderMode_TI12,TIM_ICPolarity_Rising,TIM_ICPolarity_Rising);
        TIM_ICStructInit(&TIM_ICInitStructure);
        TIM_ICInitStructure.TIM_ICFilter = 6;
        TIM_ICInit(TIM5, &TIM_ICInitStructure);
        TIM_ClearFlag(TIM5, TIM_FLAG_Update);  
        TIM_ITConfig(TIM5, TIM_IT_Update, ENABLE);
        TIM5->CNT = 0;
        TIM_Cmd(TIM5, ENABLE);
}

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
lookatmenow
1楼-- · 2019-07-21 13:41
 精彩回答 2  元偷偷看……
meng907161614
2楼-- · 2019-07-21 17:31
lookatmenow 发表于 2017-4-20 14:03
我用正确的改了改还是不行....

最近我也在搞这个,能不能分享一下正确的程序我qq907161614,跪谢
咎落
3楼-- · 2019-07-21 19:23
我TIM5编码器模式的更新中断有点问题,我想让编码器转一次,在中断里面计数一次,经过试验后编码器转 一圈后,中断里面计数一下子计数三次。

一周热门 更多>