你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

官方库3.5版本的输入捕获模式

[复制链接]
at89 提问时间:2015-4-19 17:45 /
最近研究电机,输入捕获外部编码器的脉冲输入,参考了一下官方库里面的例子,输出的频率值一直在变化啊,明显不准。有没有用过的小伙伴讨论下。中断里面的程序计算频率为什么是 TIM3Freq = (uint32_t) SystemCoreClock / Capture;
收藏 评论7 发布时间:2015-4-19 17:45

举报

7个回答
zhangdaijin 回答时间:2015-4-19 17:51:25
学习一下!!
at89 回答时间:2015-4-19 23:32:01

讨论一下,可以试试一起来嘛
stary666 回答时间:2015-4-20 13:58:16
用PWM输入可以解决
at89 回答时间:2015-4-21 00:13:58
stary666 发表于 2015-4-20 13:58
用PWM输入可以解决

PWM可以获取占空比和频率,我看了,频率求解的程序是一样的,但是串口输出总是在变化,贴出中断代码
if(TIM_GetITStatus(TIM3, TIM_IT_CC2|TIM_IT_CC1) == SET)
  {
    /* Clear TIM3 Capture compare interrupt pending bit */
    TIM_ClearITPendingBit(TIM3,TIM_IT_CC1);
                TIM_ClearITPendingBit(TIM3,TIM_IT_CC2);
    if(CaptureNumber == 0)
    {
      /* Get the Input Capture value */
      IC3ReadValue1 = TIM_GetCapture2(TIM3)+TIM_GetCapture1(TIM3);
      CaptureNumber = 1;
    }
    else if(CaptureNumber == 1)
    {
      /* Get the Input Capture value */
      IC3ReadValue2 = TIM_GetCapture2(TIM3)+TIM_GetCapture1(TIM3);
      
      /* Capture computation */
      if (IC3ReadValue2 > IC3ReadValue1)
      {
        Capture = (IC3ReadValue2 - IC3ReadValue1);
      }
      else
      {
        Capture = ((0xFFFF - IC3ReadValue1) + IC3ReadValue2);
      }
      /* Frequency computation */
      TIM3Freq = (u32) SystemCoreClock / Capture;
      CaptureNumber = 0;
                        //printf("%d",TIM3Freq);
                       
                       
                        printf("%ld\t\t",60*TIM3Freq/64);
                TIM2->CCR1+=0;
                TIM2->CCR2+=0;
    }
               
  }用AB相编码器,所以开了两个通道的捕获,转一圈64个脉冲
dwwzl 回答时间:2015-4-21 07:47:48
测量脉宽频率比较精细的活,我都是直接用寄存器操作的
at89 回答时间:2015-4-22 00:29:25
dwwzl 发表于 2015-4-21 07:47
测量脉宽频率比较精细的活,我都是直接用寄存器操作的

寄存器还不是很了解,不过渐渐发现直接寄存器很有用,好吧我再看看
cxtarm 回答时间:2015-4-22 09:37:28
没有这方面的经验

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版