STM32 同个定时器 采用2个通道输入捕获

工作中遇到,做点总结:

之前看CSDN,找到一种写法 就是 把中断中的 CAPTURE_VAL 的值 变成 date1 date2 去保存

但是我的写法不成功,一位大佬帮忙改成功了。

总结我的写法错误之处,

主函数区别:

 我把date1 清0 放后面了

中断函数区别:

 

我调用了 

 TIM_GetCapture1 这个函数

 但是原理是一样的  都是返回TIMx->CCR1

大佬的写法:

主函数

中断函数:

 

 

总结:

1.应该就是主函数date1的清0 我位置放太后,导致它没有及时清零,产生误差。因为date1 是开始时CNT计数器的计数值。如果不及时清0,会使得一开始的捕获输入不准确。

2.我可能调用

TIM_GetCapture1 

这个函数时,它没有调用成功,不如大佬那种写法,直接操作寄存器来得准确+方便。

注:date1---->同一通道开始时的CNT计数值

      date2------>同一通道结束时的CNT计数值

各个通道都有自己的date1 date2 所以每个通道的date1清0 互不影响。 解决了一个CNT共用时,清0混乱的问题。 

具体代码在我最新的其他文章里面,需要的去自取。

https://blog.csdn.net/m0_49096264/article/details/126883160?spm=1001.2014.3001.5501

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

耐心195

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值