查看: 8871|回复: 3

【SIGMA开发小组】STM32F407之PA1不能用作TIM5的CH1通道捕获功!

[复制链接]
  • TA的每日心情
    奋斗
    2013-10-28 09:28
  • 签到天数: 34 天

    连续签到: 1 天

    [LV.5]常住居民I

    发表于 2013-8-28 22:22:49 | 显示全部楼层 |阅读模式
    分享到:
    今天调试四轴遥控,需要用到定时器的输入捕获功能,于是配置TIM5如下:
    /* Connect TIM pin to AF2 */
      GPIO_PinAFConfig(GPIOA, GPIO_PinSource0, GPIO_AF_TIM5);
    GPIO_PinAFConfig(GPIOA, GPIO_PinSource1, GPIO_AF_TIM5);
      GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_TIM5);
    GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_TIM5);


            TIM5_ICInitStructure.TIM_Channel = TIM_Channel_1;
              TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;
              TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
              TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;       
              TIM5_ICInitStructure.TIM_ICFilter = 0x01;
              TIM_ICInit(TIM5, &TIM5_ICInitStructure);
           
              TIM5_ICInitStructure.TIM_Channel = TIM_Channel_2;
              TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;       
              TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
              TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;       
              TIM5_ICInitStructure.TIM_ICFilter = 0x01;
              TIM_ICInit(TIM5, &TIM5_ICInitStructure);
           
            TIM5_ICInitStructure.TIM_Channel = TIM_Channel_3;
              TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;       
              TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
              TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;       
              TIM5_ICInitStructure.TIM_ICFilter = 0x01;
              TIM_ICInit(TIM5, &TIM5_ICInitStructure);

            TIM5_ICInitStructure.TIM_Channel = TIM_Channel_4;
              TIM5_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_Rising;       
              TIM5_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI;
              TIM5_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;       
              TIM5_ICInitStructure.TIM_ICFilter = 0x01;
              TIM_ICInit(TIM5, &TIM5_ICInitStructure);
                   
            TIM_ITConfig(TIM5,TIM_IT_CC1,ENABLE);
            TIM_ITConfig(TIM5,TIM_IT_CC2,ENABLE);
            TIM_ITConfig(TIM5,TIM_IT_CC3,ENABLE);
            TIM_ITConfig(TIM5,TIM_IT_CC4,ENABLE);

               TIM_Cmd(TIM5,ENABLE );

    按照这样配置完成后,CH1,CH3,CH4都是可以的,正常,但是就CH2不能正常工作,找了半天,未果,后来只有使用另外一种方法来解决捕获的功能,就是再使用一个TIM6来计数,使能PA1的EXIT功能,代码如下:
    TIM_Cmd(TIM6, ENABLE);
    /* Connect EXTI Line0 to PA0 pin */
      SYSCFG_EXTILineConfig(EXTI_PortSourceGPIOA, EXTI_PinSource1);       
      EXTI_InitStructure.EXTI_Line = EXTI_Line1;
      EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;
      EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Rising;
      EXTI_InitStructure.EXTI_LineCmd = ENABLE;
      EXTI_Init(&EXTI_InitStructure);        
    这样终于解决了问题,四个 通道的PPM信号就可以能够捕获到了!!!
    再次重申一下PA1不能用于TIM5的捕获功能。。。{:soso_e100:}{:soso_e100:}{:soso_e100:},希望我们好运!!!
    回复

    使用道具 举报

  • TA的每日心情

    2014-2-28 14:36
  • 签到天数: 73 天

    连续签到: 1 天

    [LV.6]常住居民II

    发表于 2013-9-22 20:54:04 | 显示全部楼层
    赞一个!!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2013-9-24 20:55:47 | 显示全部楼层
    谢谢分享哈
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-12-25 10:28
  • 签到天数: 6 天

    连续签到: 1 天

    [LV.2]偶尔看看I

    发表于 2017-3-5 18:29:21 | 显示全部楼层
    stm32f407的PA1是确定可以用于TIM5或者TIM2的捕捉功能的,解决办法就是在初始化GPIO的时候,加入上下拉。GPIO_PuPd_DOWN和GPIO_PuPd_UP都可以,不能是GPIO_PuPd_NOPULL。
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-5-3 11:48 , Processed in 0.152024 second(s), 23 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.