STM32编码器模式问题

[复制链接]
4589|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

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