求助:stm32 对脉冲计数

[复制链接]
5915|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
 楼主| 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);
}
}
}这样写对吗
 楼主| fanningjia 发表于 2010-10-11 15:55 | 显示全部楼层
2# wangzeyue s
是的,你怎么做的啊?
wangzeyue 发表于 2010-10-12 10:51 | 显示全部楼层
哇哈哈哈哈,我还没做。正准备做呢。。。。你搞定了没有啊 ?
 楼主| fanningjia 发表于 2010-10-14 20:32 | 显示全部楼层
7# wangzeyue
我弄了,可是老是出情况,你进展如何
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:努力

20

主题

52

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部