OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5007|回复: 0

请教大家和原子哥,关于光栅尺读数的问题

[复制链接]

209

主题

771

帖子

0

精华

初级会员

Rank: 2

积分
136
金钱
136
注册时间
2018-3-26
在线时间
287 小时
发表于 2022-11-4 09:36:19 | 显示全部楼层 |阅读模式
20金钱
请教大家和原子哥,关于光栅尺读数的问题,光栅尺输出的是差分信号,需要用单片机TIM的编码器模式进行采集,在采集的时候发现一个问题,当我微微移动时,有读数正常,但是快速移动时,读数就没啥变化,就像是反应不过来,用示波器看了波形没问题
  1. void EncoderA_Init(void)
  2. {
  3.         GPIO_InitTypeDef GPIO_InitStructure;                         //        ?????????  
  4.         TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;        //        ??????????
  5.         TIM_ICInitTypeDef TIM_ICInitStructure;                         //        ???????????????
  6.        
  7.         RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);         //        ??TIM4??
  8.         RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);         //        ??GPIOB??

  9.         GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1;        //        PB6?PB7
  10.         GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;         //        ????
  11.         GPIO_Init(GPIOA, &GPIO_InitStructure);                                        //        ??GPIO_InitStructure??????GPIOB0

  12.         TIM_TimeBaseStructure.TIM_Period = 0xffff;                                 //        ??????????
  13.         TIM_TimeBaseStructure.TIM_Prescaler = 0;                                                 //        ????
  14.         TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;                 //        ??????:???
  15.         TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;         //        TIM??????
  16.         TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);                                 //        ??TIM_TimeBaseInitStruct?????????TIM4
  17.        
  18.         TIM_EncoderInterfaceConfig(TIM2, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);//???????3:CH1?CH2????,???
  19.        
  20.         //???TIM4??????
  21.         TIM_ICStructInit(&TIM_ICInitStructure);                                                         //        ?TIM_ICInitStruct ?????????????
  22.         TIM_ICInitStructure.TIM_ICFilter = 0x00;                                                          //         IC1F=0011 ???????(??????)
  23.         TIM_ICInit(TIM2, &TIM_ICInitStructure);                                                         //        ?TIM_ICInitStructure????????TIM4?????

  24.         TIM_Cmd(TIM2, ENABLE);                                                                                                 // ?????4
  25. }


  26. uint32_t read_encoder(void)
  27.         {
  28.        
  29.                 return TIM2->CNT;
  30.        
  31.         }

  32.            while(1)
  33.         {
  34.           encoder_num=TIM2->CNT;
  35.                 printf("±àÂëÆ÷êy¾YêÇ%d\r\n",encoder_num);
  36.        
  37.         }
复制代码


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-2-25 22:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表