STM32 TIM 输入捕捉 双边沿检测 TIM_ICPolarity_BothEdge

STM32 TIM 输入捕捉 双边沿检测 TIM_ICPolarity_BothEdge

直接来,先上代码:

//初始化TIM1输入捕获参数
TIM1_ICInitStructure.TIM_Channel = TIM_Channel_1; //CC1S=01     选择输入端 IC1映射到TI1上
TIM1_ICInitStructure.TIM_ICPolarity = TIM_ICPolarity_BothEdge;  
TIM1_ICInitStructure.TIM_ICSelection = TIM_ICSelection_DirectTI; //映射到TI1上
TIM1_ICInitStructure.TIM_ICPrescaler = TIM_ICPSC_DIV1;   //配置输入分频,不分频 
TIM1_ICInitStructure.TIM_ICFilter = 0x00;//IC1F=0000 配置输入滤波器 不滤波
TIM_ICInit(TIM1, &TIM1_ICInitStructure);

首先,这样写代码是实现不了双边沿输入捕捉的,具体原因是ST这一块没做好,TIM_ICPolarity_BothEdge没有用

多亏这个帖子里的大神,把问题解决了
http://www.openedv.com/thread-12644-1-1.html

按照帖子所述,奉上代码:

  /*********************使能双边沿检测************************/
   // http://www.openedv.com/thread-12644-1-1.html
   TIM1->CCER &= (uint16_t)~((uint16_t)TIM_CCER_CC1E);
   TIM1->CCMR1 |= 0x03;
   TIM1->SMCR |= (1 << 6);
   TIM1->SMCR &= ~((1 << 5) | (1 << 4));
   TIM1->CCER |= ((uint16_t)TIM_CCER_CC1E);
   /*********************使能双边沿检测************************/

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

  • 11
    点赞
  • 62
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值