打印

求助:stm32 对脉冲计数

[复制链接]
4642|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fanningjia|  楼主 | 2010-10-10 11:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有哪位大侠用stm32做过对脉冲计数的
我现在对电机的位置编码器的输出脉冲进行计数
位置编码器一周360度出1024个脉冲,一周以后重新计数
哪位大侠指点下,或者有对脉冲计数的程序发我邮箱我来体会一下,不胜感激
邮箱:fnj_fny0624@126.com
沙发
wangzeyue| | 2010-10-10 21:25 | 只看该作者
哇哈哈哈哈。原来STM32就是用这个来做QEI的啊。或者叫做QEP。感谢楼上提问。我也打算用这个做一个电机的位置编码器计数,请问楼主,这个脉冲计数是不是用定时器的输入捕获功能?

使用特权

评论回复
板凳
fanningjia|  楼主 | 2010-10-11 10:15 | 只看该作者
2# wangzeyue
我倒,你问我啊?我是问问题的
hoho~

使用特权

评论回复
地板
shagua0916| | 2010-10-11 14:33 | 只看该作者
input capture

使用特权

评论回复
5
fanningjia|  楼主 | 2010-10-11 15:43 | 只看该作者
4# shagua0916
int main(void)
{
unsigned char n_Counter;
#ifdef DEBUG
  debug();
#endif
RCC_Configuration(); // System Clocks Configuration
NVIC_Configuration(); // NVIC configuration
GPIO_Configuration(); // Configure the GPIO ports
TIM_TimeBaseStructure.TIM_Period = 0x0400;
TIM_TimeBaseStructure.TIM_Prescaler = 0x00;
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;
TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure); // Time base configuration
TIM_ETRClockMode2Config(TIM2, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);
TIM_SetCounter(TIM2, 0);
TIM_Cmd(TIM2, ENABLE);
   
while (1)
{  
  if (n_Counter<0x0400)
n_Counter = TIM_GetCounter(TIM2);
else
{ TIM_SetCounter(TIM2, 0);
TIM_Cmd(TIM2, ENABLE);
n_Counter = TIM_GetCounter(TIM2);
}
}
}这样写对吗

使用特权

评论回复
6
fanningjia|  楼主 | 2010-10-11 15:55 | 只看该作者
2# wangzeyue s
是的,你怎么做的啊?

使用特权

评论回复
7
wangzeyue| | 2010-10-12 10:51 | 只看该作者
哇哈哈哈哈,我还没做。正准备做呢。。。。你搞定了没有啊 ?

使用特权

评论回复
8
fanningjia|  楼主 | 2010-10-14 20:32 | 只看该作者
7# wangzeyue
我弄了,可是老是出情况,你进展如何

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:努力

20

主题

52

帖子

0

粉丝