OpenEdv-开源电子网

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

stm32f407正交编码器初始化

[复制链接]

6

主题

20

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2012-11-17
在线时间
0 小时
发表于 2012-11-26 12:35:51 | 显示全部楼层 |阅读模式

前几天调了一天编码器,一点反应都没有,放弃了。今天忽然想起没有加上拉电阻,加了两个就ok了。
顺便说一下,f407的编码器接口的配置和f103一模一样,唯一的不同就是f407的tim2和tim5是32位的,而103好像都是16位的。使用32位编码器的话,
在好多时候都可以不使用tim中断。直接读取cnt的值就可以了。


void ENC_Init(void)
{
  TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; 
  TIM_ICInitTypeDef TIM_ICInitStructure; 
  GPIO_InitTypeDef GPIO_InitStructure;
  NVIC_InitTypeDef NVIC_InitStructure;
  

  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);
  RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);

 

  
  //GPIO_StructInit(&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_AF;
  GPIO_InitStructure.GPIO_OType = GPIO_OType_OD;
  GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
  GPIO_Init(GPIOC, &GPIO_InitStructure);


  GPIO_PinAFConfig(GPIOC,GPIO_PinSource6,GPIO_AF_TIM3);
     GPIO_PinAFConfig(GPIOC,GPIO_PinSource7,GPIO_AF_TIM3);
  
  /* Enable the TIM3 Update Interrupt */
//  NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn;
//  NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
//  NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
//  NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
//  NVIC_Init(&NVIC_InitStructure);
  
  /* Timer configuration in Encoder mode */
  //TIM_DeInit(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_TI1, 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
  //TIM2->CNT = 100;
  
  // ENC_Clear_Speed_Buffer();
  
  TIM_Cmd(TIM3, ENABLE);
}

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

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-4-30
在线时间
2 小时
发表于 2015-5-24 15:14:03 | 显示全部楼层
楼主给出了代码,但是没给完整。。。
我把代码给全。。。
附件里有例程,还有相关PDF

stm32正交编码接口(QEI).zip

2.48 MB, 下载次数: 14155

回复 支持 2 反对 0

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2012-11-26 14:29:37 | 显示全部楼层
谢谢分享。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

156

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2011-3-23
在线时间
5 小时
发表于 2013-3-29 17:10:37 | 显示全部楼层
支持下啊~~~
回复 支持 反对

使用道具 举报

19

主题

156

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2011-3-23
在线时间
5 小时
发表于 2013-4-18 14:21:46 | 显示全部楼层
回复【楼主位】ggkuku:
---------------------------------
可否提供一下工程
回复 支持 反对

使用道具 举报

19

主题

156

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2011-3-23
在线时间
5 小时
发表于 2013-4-18 15:56:48 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
有测试过吗?原子哥
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2013-4-18 17:36:55 | 显示全部楼层
回复【5楼】苹果:
---------------------------------
没.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

19

主题

156

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
291
金钱
291
注册时间
2011-3-23
在线时间
5 小时
发表于 2013-4-18 20:35:05 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
刚刚测试了,是可以用的,但是我不知道我采集的是不是对的。
回复 支持 反对

使用道具 举报

21

主题

59

帖子

0

精华

初级会员

Rank: 2

积分
164
金钱
164
注册时间
2013-4-12
在线时间
0 小时
发表于 2013-8-5 08:00:13 | 显示全部楼层
回复【楼主位】ggkuku:
---------------------------------
如何求转子的转速?
自由的代价永远是警惕!
回复 支持 反对

使用道具 举报

7

主题

27

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
345
金钱
345
注册时间
2013-4-10
在线时间
48 小时
发表于 2014-3-10 11:33:04 | 显示全部楼层
谢谢了,我用的是207,不过配置好像和这个一样
回复 支持 反对

使用道具 举报

头像被屏蔽

308

主题

400

帖子

0

精华

禁止访问

积分
1185
金钱
1185
注册时间
2011-7-29
在线时间
10 小时
发表于 2014-6-18 17:14:33 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2015-5-26
在线时间
1 小时
发表于 2015-7-1 15:02:05 | 显示全部楼层
回复【11楼】吃咯:
原子哥,有没有f4的编码器测速程序呀
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165508
金钱
165508
注册时间
2010-12-1
在线时间
2115 小时
发表于 2015-7-1 23:02:41 | 显示全部楼层
回复【12楼】denxi2008:
---------------------------------
没有哦
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
54
金钱
54
注册时间
2015-4-28
在线时间
1 小时
发表于 2015-10-7 11:32:27 | 显示全部楼层
虽然帖子老了,但是看到还是想确认下,这样的程序,没有开复用时钟,可以用吗?
向正点原子致敬
回复 支持 反对

使用道具 举报

1

主题

7

帖子

0

精华

新手上路

积分
31
金钱
31
注册时间
2015-9-13
在线时间
0 小时
发表于 2015-10-7 15:46:26 | 显示全部楼层
楼主,最近在调码盘程序,问下,只有TIM2,TIM5是32位的,可是他们用的引脚都是a1a2a3a4,我刚刚测试用三四通道不行啊。那岂不是不能同时用TIM2,TIM5。要用的话还让TIM2占用下载器的io,实在不想啊。有什么解决办法么?
回复 支持 反对

使用道具 举报

12

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
352
金钱
352
注册时间
2014-1-22
在线时间
43 小时
发表于 2015-10-21 14:30:39 | 显示全部楼层
你的可以了吗?我到现在还没试成功,

你说的加一个上拉电阻是什么意思,可以详细的解说下马?
任何一件事情,只要心甘情愿,总是能够变得简单。
回复 支持 反对

使用道具 举报

12

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
352
金钱
352
注册时间
2014-1-22
在线时间
43 小时
发表于 2015-10-21 14:31:06 | 显示全部楼层
回复【15楼】Ryan嘀嗒嘀嗒:
---------------------------------
编码器模式只能用通道1或者2.
任何一件事情,只要心甘情愿,总是能够变得简单。
回复 支持 反对

使用道具 举报

12

主题

77

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
352
金钱
352
注册时间
2014-1-22
在线时间
43 小时
发表于 2015-10-28 12:45:52 | 显示全部楼层
楼主大神,能发给我下编码器模块的代码吗?
任何一件事情,只要心甘情愿,总是能够变得简单。
回复 支持 反对

使用道具 举报

10

主题

48

帖子

0

精华

初级会员

Rank: 2

积分
107
金钱
107
注册时间
2016-1-22
在线时间
19 小时
发表于 2016-3-9 21:47:29 | 显示全部楼层
吃咯 发表于 2015-5-24 15:14
楼主给出了代码,但是没给完整。。。
我把代码给全。。。
附件里有例程,还有相关PDF

怎么下载不了?
回复 支持 反对

使用道具 举报

1

主题

13

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
304
金钱
304
注册时间
2015-10-23
在线时间
56 小时
发表于 2016-4-3 00:39:46 | 显示全部楼层
不错!
回复 支持 反对

使用道具 举报

15

主题

118

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3060
金钱
3060
注册时间
2015-12-20
在线时间
299 小时
发表于 2016-6-6 14:53:00 | 显示全部楼层
吃咯 发表于 2015-5-24 15:14
楼主给出了代码,但是没给完整。。。
我把代码给全。。。
附件里有例程,还有相关PDF

顶一下
回复 支持 反对

使用道具 举报

0

主题

183

帖子

0

精华

高级会员

Rank: 4

积分
684
金钱
684
注册时间
2016-1-27
在线时间
184 小时
发表于 2016-6-6 17:07:33 | 显示全部楼层
谢谢分享!
回复 支持 反对

使用道具 举报

4

主题

49

帖子

0

精华

高级会员

Rank: 4

积分
622
金钱
622
注册时间
2016-5-11
在线时间
40 小时
发表于 2016-7-6 11:16:10 | 显示全部楼层
好东西,TKS...
回复 支持 反对

使用道具 举报

3

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2016-1-25
在线时间
13 小时
发表于 2016-7-22 10:43:43 | 显示全部楼层
好东西 顶!
回复 支持 反对

使用道具 举报

4

主题

18

帖子

0

精华

初级会员

Rank: 2

积分
95
金钱
95
注册时间
2016-9-26
在线时间
17 小时
发表于 2016-9-27 11:14:41 | 显示全部楼层
支持一下
回复 支持 反对

使用道具 举报

0

主题

1

帖子

0

精华

新手入门

积分
7
金钱
7
注册时间
2016-11-3
在线时间
0 小时
发表于 2016-11-3 22:27:45 | 显示全部楼层
楼主我们的编码器没有供电都有脉冲输出问题在哪里呀
回复 支持 反对

使用道具 举报

2

主题

25

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
311
金钱
311
注册时间
2016-11-10
在线时间
59 小时
发表于 2016-11-18 21:51:47 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

13

主题

79

帖子

0

精华

初级会员

Rank: 2

积分
83
金钱
83
注册时间
2015-9-22
在线时间
76 小时
发表于 2016-11-23 15:55:06 | 显示全部楼层
不用上拉电阻也行,我是推完输出上啦复用
回复 支持 反对

使用道具 举报

3

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
61
金钱
61
注册时间
2016-3-11
在线时间
11 小时
发表于 2017-4-14 15:12:01 | 显示全部楼层
看看学习
回复 支持 反对

使用道具 举报

王大强 该用户已被删除
发表于 2017-4-18 22:13:30 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复 支持 反对

使用道具 举报

2

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2016-10-28
在线时间
30 小时
发表于 2017-9-4 10:30:41 | 显示全部楼层
爱不孤单 发表于 2015-10-21 14:30
你的可以了吗?我到现在还没试成功,

你说的加一个上拉电阻是什么意思,可以详细的解说下马?

正交编码器的输出AB脉冲是集电极断开开漏输出的。所以,需要一个上拉电阻。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-18 07:48

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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