打印

STM32编码器模式问题

[复制链接]
4100|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
dream-yi|  楼主 | 2012-8-31 23:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
之前用中断做过,现在做点东西,看到有编码器模式,想用用资源,但是配置好像有问题,大家有时间的帮我看看呗。以下是大体的初始化代码:
void Encoder_Init(void)
{
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
  TIM_ICInitTypeDef TIM_ICInitStructure;   
  GPIO_InitTypeDef GPIO_InitStructure;
  NVIC_InitTypeDef NVIC_InitStructure;


  GPIO_StructInit(&GPIO_InitStructure);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IPU;
  GPIO_Init(GPIOA, &GPIO_InitStructure);


  NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 1;
  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
  NVIC_Init(&NVIC_InitStructure);

  TIM_DeInit(TIM3);
  TIM_TimeBaseStructInit(&TIM_TimeBaseStructure); //先设置为缺省值

  TIM_TimeBaseStructure.TIM_Prescaler = 0x00;  // No prescaling
  TIM_TimeBaseStructure.TIM_Period = (4*10)-1;  
  TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;   
  TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

  TIM_EncoderInterfaceConfig(TIM3,      TIM_EncoderMode_TI1,TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);  //设置TIM3编码界面
  TIM_ICStructInit(&TIM_ICInitStructure);
//把其中的参数设置为缺省值  
  TIM_ICInitStructure.TIM_ICFilter = 6;
         //选择比较滤波器
  TIM_ICInit(TIM3, &TIM_ICInitStructure);

  TIM_ClearFlag(TIM3, TIM_FLAG_Update);
  TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);
  TIM3->CNT = 0;

  TIM_Cmd(TIM3, ENABLE);


}
沙发
文峰聊书斋| | 2013-3-21 10:31 | 只看该作者
TIM3 PA6,PA7l两只脚,IPU是模拟输入,那是AD时用的。

使用特权

评论回复
板凳
文峰聊书斋| | 2013-3-21 10:32 | 只看该作者
暂时先把中断去掉。我是把TIM3-》CNT输出到串口调试助手里,但我也还没成功

使用特权

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

本版积分规则

0

主题

47

帖子

0

粉丝