15

帖子

1

TA的资源

一粒金砂(中级)

21
 
可以加你的QQ吗? 我的是QQ1486271730,请大神帮帮忙
此帖出自stm32/stm8论坛
 

回复

1412

帖子

15

TA的资源

版主

22
 
whole_hope 发表于 2015-10-23 15:18
楼主我用的是F4 开发板中 使用TIM4 I/0口 PB6、PB7,设置 都跟你一样为什么 CNT值一直未0 不变化呢?

首先确保外部电路连接正常了,你用示波器看看编码器转的时候是否有高低电平输出。然后再考虑代码。

代码的话用网上的就行,转转编码器就会变化。
此帖出自stm32/stm8论坛

点评

楼主,最近我一直在试编码器,在示波器未接开发板IO口时,波形很好,如下图 [attachimg]219156[/attachimg] 可是在接上开发板IO引脚后,就没波形了,如下图 [attachimg]219157[/attachimg] 开始怀疑是不是 电  详情 回复 发表于 2015-10-29 14:29
 
个人签名https://bbs.eeworld.com.cn/thread-471646-1-1.html
欢迎加入我的团队
 

回复

15

帖子

1

TA的资源

一粒金砂(中级)

23
 
youki12345 发表于 2015-10-24 12:20
首先确保外部电路连接正常了,你用示波器看看编码器转的时候是否有高低电平输出。然后再考虑代码。

代 ...

楼主,最近我一直在试编码器,在示波器未接开发板IO口时,波形很好,如下图

可是在接上开发板IO引脚后,就没波形了,如下图


开始怀疑是不是 电路板坏了,然后我换了一块开发板,结果还是如上面所说。
然后我又换了板子上的其他的定时器,但是还是不行。
现在我怀疑是不是我的IO口配置错了,强制把编码器过来的波形拉低了。

我用的是STM32F4的板子,
IO口配置
void encoder_init(void)
{
   TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
   TIM_ICInitTypeDef TIM_ICInitStructure;
   GPIO_InitTypeDef GPIO_InitStructure;
   NVIC_InitTypeDef NVIC_InitStructure;

   RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
/* Enable GPIOB, clock */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB|RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOC, ENABLE);

//  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 ;
//  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_25MHz;
//  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
//  //GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
//  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;
//  GPIO_Init(GPIOA, &GPIO_InitStructure);
//  
//  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 ;
//  GPIO_Init(GPIOB, &GPIO_InitStructure);
   /* Configure PC.06,07 as encoder input */
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN/*GPIO_Mode_AF*/;//此处又开始的复用换成输入模式
   GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
   GPIO_Init(GPIOC, &GPIO_InitStructure);
   GPIO_PinAFConfig(GPIOC,GPIO_Pin_6,GPIO_AF_TIM3);
   GPIO_PinAFConfig(GPIOC,GPIO_Pin_7,GPIO_AF_TIM3);

   TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);

   TIM_TimeBaseStructure.TIM_Prescaler = 0x0; // No prescaling
   TIM_TimeBaseStructure.TIM_Period = 60000;
   TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
   TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;   
   TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

   TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);
   TIM_ICStructInit(&TIM_ICInitStructure);
   TIM_ICInitStructure.TIM_ICFilter = 0;
TIM_ICInit(TIM3, &TIM_ICInitStructure);

// Clear all pending interrupts
   TIM_ClearFlag(TIM3, TIM_FLAG_Update);
   TIM_ITConfig(TIM3, TIM_IT_Update, ENABLE);

  //Reset counter
  TIM3->CNT = COUNTER_RESET;
  TIM_Cmd(TIM3, ENABLE);

}

我查不出来哪里错了现在,能不能给指导下
此帖出自stm32/stm8论坛
 
 

回复

15

帖子

1

TA的资源

一粒金砂(中级)

24
 
不知道你有没有碰到过?
此帖出自stm32/stm8论坛
 
 
 

回复

1412

帖子

15

TA的资源

版主

25
 
你IO只接了编码器没接别的啊?
你编码器是不是OD输出啊?外部上拉试试。另外,你把IO直接配置为输入(不要配定时器)看看有没有问题。我觉得你这个不是配置的问题,是外部硬件的问题。

再不行,外接个74LS04整下形看看
此帖出自stm32/stm8论坛

点评

"另外,你把IO直接配置为输入(不要配定时器)看看有没有问题" 版版的意思是io的mode设置为上拉输入。 不用复用模式。 可是,如果不用复用模式的话,引脚复用函数还会起作用么  详情 回复 发表于 2016-8-16 09:55
 
个人签名https://bbs.eeworld.com.cn/thread-471646-1-1.html
欢迎加入我的团队
 
 

回复

265

帖子

15

TA的资源

一粒金砂(中级)

26
 
多谢楼主分享
学习了
此帖出自stm32/stm8论坛
 
个人签名共同学习 共同进步
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

27
 
我也想实验这个,要好好拜读。先谢谢楼主的奉献。
此帖出自stm32/stm8论坛
 
 
 

回复

18

帖子

0

TA的资源

一粒金砂(中级)

28
 
huo_hu 发表于 2015-2-22 15:26
好的,我来补充一下,
1.编码器有个转速上限,超过这个上限是不能正常工作的,这个是硬件的限制,原则上线数越 ...

关于第6点,如果转速不高,STM32的硬件完全能应付过来,这种情况下是不是就不会多计数或者少计数了?
此帖出自stm32/stm8论坛

点评

这不一定,比如编码器屏蔽不好,线路干扰,电压处于临界值等。 另外某些物理特性也很难确保一致,比如你的电机碰到障碍物返回,每次接触的力度会有影响,毕竟码盘是个很精密的东西。  详情 回复 发表于 2016-1-6 10:13
 
 
 

回复

4008

帖子

0

TA的资源

版主

29
 
Tristan.Wu 发表于 2016-1-6 09:32
关于第6点,如果转速不高,STM32的硬件完全能应付过来,这种情况下是不是就不会多计数或者少计数了?

这不一定,比如编码器屏蔽不好,线路干扰,电压处于临界值等。
另外某些物理特性也很难确保一致,比如你的电机碰到障碍物返回,每次接触的力度会有影响,毕竟码盘是个很精密的东西。
此帖出自stm32/stm8论坛
 
 
 

回复

28

帖子

0

TA的资源

一粒金砂(中级)

30
 
学习学习
此帖出自stm32/stm8论坛
 
 
 

回复

139

帖子

0

TA的资源

一粒金砂(初级)

31
 
好文章  赞一个
此帖出自stm32/stm8论坛
 
 
 

回复

139

帖子

0

TA的资源

一粒金砂(初级)

32
 
学习一下  楼主用的是不是不是F1系列的
此帖出自stm32/stm8论坛
 
 
 

回复

1412

帖子

15

TA的资源

版主

33
 
F3系列,原理是一样的,只是引脚不一样
此帖出自stm32/stm8论坛
 
个人签名https://bbs.eeworld.com.cn/thread-471646-1-1.html
欢迎加入我的团队
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

34
 
楼主有没有源码啊,发我一下呗
此帖出自stm32/stm8论坛
 
 
 

回复

8

帖子

0

TA的资源

一粒金砂(初级)

35
 
要是编码器脉冲不均匀,而且还速度超低,怎么测速呢?
此帖出自stm32/stm8论坛

点评

编码器通常都是均匀的吧?  详情 回复 发表于 2016-3-3 11:46
 
个人签名肖飞
 
 

回复

1412

帖子

15

TA的资源

版主

36
 
xiaofei558008 发表于 2016-3-2 11:30
要是编码器脉冲不均匀,而且还速度超低,怎么测速呢?

编码器通常都是均匀的吧?
此帖出自stm32/stm8论坛
 
个人签名https://bbs.eeworld.com.cn/thread-471646-1-1.html
欢迎加入我的团队
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

37
 
楼主,有完整的程序吗,显示部分已做出来,计数部分有完整的吗
此帖出自stm32/stm8论坛
 
 
 

回复

2

帖子

0

TA的资源

一粒金砂(初级)

38
 
刚接触arm,想用它做光栅尺测距,实现最基本的测距离功能即可
此帖出自stm32/stm8论坛
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

39
 

顶LZ,写的真好
此帖出自stm32/stm8论坛
 
 
 

回复

9

帖子

0

TA的资源

一粒金砂(初级)

40
 
我想问一下楼主,函数中的参数是怎么回事
此帖出自stm32/stm8论坛

点评

那个参数这个程序中没用,如果你要用的话用period替换1333  详情 回复 发表于 2016-5-27 14:38
 
 
 

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

猜你喜欢
随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条
电源解决方案和技术 | DigiKey 应用探索站
当月好物、电源技术资源、特色活动、DigiKey在线实用工具,干货多多~

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表