OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3349|回复: 4

stm32f429 双路输入捕捉出现的问题?

[复制链接]

5

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2015-4-20
在线时间
27 小时
发表于 2017-6-13 21:14:40 | 显示全部楼层 |阅读模式
5金钱
本帖最后由 思否学否 于 2017-6-13 22:08 编辑

    以前103 、407写输入捕捉程序,几路通道的输入捕捉都是仿原子例程写的,都不会出现什么问题,今天在stm32f429上写输入捕捉程序。第一个输入捕捉没问题,但第二个通道输入捕捉总是导致程序挂了,,第二个输入捕捉换了几个定时器和通道还是这样,新库感觉用起来好麻烦啊,请问429的库与以前的库有什么需要注意的吗?
初始化仿照原子的修改,中断处理按照以前老库的写法。代码如下:

[mw_shl_code=c,true]void TIM4_IRQnHandler(void)
{

         if(__HAL_TIM_GET_FLAG(&TIM4_Handler, TIM_FLAG_UPDATE) != RESET)
   {
    if(__HAL_TIM_GET_IT_SOURCE(&TIM4_Handler, TIM_IT_UPDATE) !=RESET)
    {
      __HAL_TIM_CLEAR_IT(&TIM4_Handler, TIM_IT_UPDATE);
     if((TIM4CH1_CAPTURE_STA&0X80)==0)//»1Î′3é1|2¶»ñ
            {
                        if(TIM4CH1_CAPTURE_STA&0X40)//òѾ-2¶»ñμ½¸ßμçÆ½áË
                        {
                                if((TIM4CH1_CAPTURE_STA&0X3F)==0X3F)//¸ßμçÆ½ì«3¤áË
                                {
                                        TIM4CH1_CAPTURE_STA|=0X80;                //±ê¼Ç3é1|2¶»ñáËò»′Î
                                        TIM4CH1_CAPTURE_VAL=0XFFFFFFFF;
                                }else TIM4CH1_CAPTURE_STA++;
                        }         
           }               
                        
    }
  }

        if(__HAL_TIM_GET_IT_SOURCE(&TIM4_Handler, TIM_IT_CC1) !=RESET)
    {
      __HAL_TIM_CLEAR_IT(&TIM4_Handler, TIM_IT_CC1);
      TIM4_Handler.Channel = HAL_TIM_ACTIVE_CHANNEL_1;
               
     if((TIM4CH1_CAPTURE_STA&0X80)==0)//»1Î′3é1|2¶»ñ
                                {
                                        if(TIM4CH1_CAPTURE_STA&0X40)                //2¶»ñμ½ò»¸öϽμÑØ                 
                                                {                                 
                                                        TIM4CH1_CAPTURE_STA|=0X80;                //±ê¼Ç3é1|2¶»ñμ½ò»′θßμçÆ½Âö¿í
                                                        TIM4CH1_CAPTURE_VAL=HAL_TIM_ReadCapturedValue(&TIM4_Handler,TIM_CHANNEL_1);//»ñè¡μ±Ç°μÄ2¶»ñÖμ.
                                                        TIM_RESET_CAPTUREPOLARITY(&TIM4_Handler,TIM_CHANNEL_1);   //ò»¶¨òaÏèÇå3yÔ-à′μÄéèÖã¡£¡
                                                
                                                }else                                                                  //»1Î′¿aê¼,μúò»′Î2¶»ñéÏéyÑØ
                                                {
                                                        TIM4CH1_CAPTURE_STA=0;                        //Çå¿Õ
                                                        TIM4CH1_CAPTURE_VAL=0;
                                                        TIM4CH1_CAPTURE_STA|=0X40;                //±ê¼Ç2¶»ñμ½áËéÏéyÑØ
                                                //        __HAL_TIM_DISABLE(&TIM3_Handler);        //1رն¨ê±Æ÷5
                                                        __HAL_TIM_SET_COUNTER(&TIM4_Handler,0);
                                                        TIM_RESET_CAPTUREPOLARITY(&TIM4_Handler,TIM_CHANNEL_1);   //ò»¶¨òaÏèÇå3yÔ-à′μÄéèÖã¡£¡
                                                //        __HAL_TIM_ENABLE(&TIM3_Handler);//ê1Äü¶¨ê±Æ÷5
                                                }                    
                                       
      }
      /* Output compare event */
   
       TIM4_Handler.Channel = HAL_TIM_ACTIVE_CHANNEL_CLEARED;
    }
   
}[/mw_shl_code]

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2017-6-14 10:40:37 | 显示全部楼层
回复

使用道具 举报

2

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2018-1-30
在线时间
20 小时
发表于 2019-2-24 15:44:43 | 显示全部楼层
帮顶,兄弟,这个问题我也很迷茫
回复

使用道具 举报

2

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2018-1-30
在线时间
20 小时
发表于 2019-2-24 19:06:45 | 显示全部楼层

原子哥,我这个也是,定时器5输入捕获是您给的,但是加上另外一个定时器的输入捕获之后,定时器5正常,另外一个定时器就一直触发。。。
回复

使用道具 举报

1

主题

8

帖子

0

精华

新手上路

积分
33
金钱
33
注册时间
2019-7-10
在线时间
10 小时
发表于 2019-7-31 21:43:05 | 显示全部楼层
手动艾特原子哥,这个问题我调了两天了 用了各种方法,参考过F103的四路写法,中断 FLAG也都清了,但是只要初始化完两路,程序立刻废掉,不会执行中断。@正点原子
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-15 13:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表