硬汉嵌入式论坛

 找回密码
 立即注册
查看: 740|回复: 3
收起左侧

[TIMER] STM32H7 TIM2CH3进入不了捕获中断

[复制链接]

9

主题

32

回帖

59

积分

初级会员

积分
59
发表于 2022-6-8 16:01:47 | 显示全部楼层 |阅读模式
本帖最后由 zhangzhang 于 2022-6-8 17:02 编辑

代码中配置了TIM1ch1、TIM2CH1、TIM3CH4、TIM4CH1、TIM13CH1,试验现象为TIM1、TIM2、TIM4、TIM13能正常进入捕获中断,另外两个进入不了,有大佬知道这是啥原因吗

          TIM_IC_InitTypeDef TIM3_CH4Config;
        TIM3_Handler.Instance=TIM3;                       
        TIM3_Handler.Init.Prescaler=2399;                  
        TIM3_Handler.Init.CounterMode=TIM_COUNTERMODE_UP;   
        TIM3_Handler.Init.Period=49999;                    
        TIM3_Handler.Init.ClockDivision=TIM_CLOCKDIVISION_DIV1;
        TIM3_Handler.Init.RepetitionCounter = 0;         
        TIM3_Handler.Init.AutoReloadPreload = TIM_AUTORELOAD_PRELOAD_ENABLE;
        HAL_TIM_IC_Init(&TIM3_Handler);
       
        if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_9)==0)  
        {
                channel_CAPTURE_STA[2]=0x00;               
                TIM3_CH4Config.ICPolarity=TIM_ICPOLARITY_RISING;   
        }
        else
        {
                channel_CAPTURE_STA[2]=0x01;               
                TIM3_CH4Config.ICPolarity=TIM_ICPOLARITY_FALLING;  
        }
        TIM3_CH4Config.ICSelection=TIM_ICSELECTION_DIRECTTI;
        TIM3_CH4Config.ICPrescaler=TIM_ICPSC_DIV1;        
        TIM3_CH4Config.ICFilter=0;                       
        HAL_TIM_IC_ConfigChannel(&TIM3_Handler,&TIM3_CH4Config,TIM_CHANNEL_4);
        HAL_TIM_IC_Start_IT(&TIM3_Handler,TIM_CHANNEL_4);  
               
        __HAL_TIM_ENABLE_IT(&TIM3_Handler,TIM_IT_UPDATE);   

__HAL_RCC_TIM3_CLK_ENABLE();      
    __HAL_RCC_GPIOC_CLK_ENABLE();                       
       
    GPIO_Initure.Pin=GPIO_PIN_9;           
    GPIO_Initure.Mode=GPIO_MODE_AF_PP;     
    GPIO_Initure.Pull=GPIO_PULLDOWN;      
    GPIO_Initure.Speed=GPIO_SPEED_FREQ_HIGH;   
    GPIO_Initure.Alternate=GPIO_AF2_TIM3;
    HAL_GPIO_Init(GPIOC,&GPIO_Initure);

    HAL_NVIC_SetPriority(TIM3_IRQn,4,0);   
    HAL_NVIC_EnableIRQ(TIM3_IRQn);        

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106738
QQ
发表于 2022-6-8 17:00:59 | 显示全部楼层
1、TIM_IC_InitTypeDef TIM2_CH3Config;   局部变量的话,清零
2、 if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0)==0)这个是什么操作
3、为什么要使能溢出更新中断  __HAL_TIM_ENABLE_IT(&TIM2_Handler,TIM_IT_UPDATE);  
4、最关键的错误,TIM2 CH1是PA0,你这个配置个TIM_CHANNEL_3是什么操作。
回复

使用道具 举报

9

主题

32

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2022-6-8 17:04:22 | 显示全部楼层
eric2013 发表于 2022-6-8 17:00
1、TIM_IC_InitTypeDef TIM2_CH3Config;   局部变量的话,清零
2、 if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0 ...

对,刚发现这个PA0了,改过来了,第二个是读端口电平配置上升沿还是下降沿,第3个是因为要得到持续时间
回复

使用道具 举报

9

主题

32

回帖

59

积分

初级会员

积分
59
 楼主| 发表于 2022-6-8 17:47:32 | 显示全部楼层
eric2013 发表于 2022-6-8 17:00
1、TIM_IC_InitTypeDef TIM2_CH3Config;   局部变量的话,清零
2、 if(HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0 ...

打扰到大佬了,解决了,开发板IO口没通,换到同名字的另一个插孔上都通了,谢谢大佬
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-5-3 07:25 , Processed in 0.157823 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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