OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
楼主: 科科1987

STM32编码器接口模式--寄存器版

  [复制链接]

0

主题

7

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2014-2-28
在线时间
0 小时
发表于 2014-8-13 14:38:26 | 显示全部楼层
回复【99楼】逍遥winter:
---------------------------------
编码器模式和PWM是不能一起用的,编码器是外部信号让计数器计数,而PWM是定时器自动使能计数器计数。如果还是选用RBT6,步进电机不用同时驱动时,可以分时使用定时器驱动步进电机。否则的话你可以更换芯片,RCT6有8个定时器
正点原子逻辑分析仪DL16劲爆上市
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2014-2-28
在线时间
0 小时
发表于 2014-8-13 14:40:26 | 显示全部楼层
回复【99楼】逍遥winter:
---------------------------------
编码器模式和PWM是不能一起用的,编码器是外部信号让计数器计数,而PWM是定时器自动使能计数器计数。如果还是选用RBT6,步进电机不用同时驱动时,可以分时使用定时器驱动步进电机。否则可以选用RCT6,RCT6有8个定时器
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2014-2-28
在线时间
0 小时
发表于 2014-8-13 14:49:38 | 显示全部楼层
选用定时器多的芯片之后,你可以用定时器中断读取编码器的计数值,根据两次中断读取的计数值的差值,就可以算出速度

回复 支持 反对

使用道具 举报

8

主题

40

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2014-9-18
在线时间
2 小时
发表于 2014-10-24 20:06:04 | 显示全部楼层
回复【100楼】逍遥winter:
---------------------------------
加起来也不过3个定时器
回复 支持 反对

使用道具 举报

0

主题

7

帖子

0

精华

新手上路

积分
27
金钱
27
注册时间
2014-2-28
在线时间
0 小时
发表于 2014-10-25 09:55:21 | 显示全部楼层
怎么可能只有3个定时器呢


通用定时器:TIM2--TIM5,高级定时器:TIM1、TIM8,基本定时器:TIM6、TIM7
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-11-8
在线时间
1 小时
发表于 2014-11-25 23:09:15 | 显示全部楼层
楼主,你好,我想请问下,在对 TIM3->CCMR1初始化中,为什么只对IC1F初始化,而没有对IC2F初始化,并且IC1F='1000' 输入捕获1滤波器设置后,对TI1上的信号有没有改变。

        TIM3->CCMR1 |= 1<<0; //CC1S='01' IC1FP1映射到TI1
TIM3->CCMR1 |= 1<<8; //CC2S='01' IC2FP2映射到TI2
TIM3->CCER &= ~(1<<1); //CC1P='0' IC1FP1不反相,IC1FP1=TI1
TIM3->CCER &= ~(1<<5); //CC2P='0' IC2FP2不反相,IC2FP2=TI2
TIM3->CCMR1 |= 3<<4; // IC1F='1000' 输入捕获1滤波器
TIM3->SMCR |= 3<<0; //SMS='011' 所有的输入均在上升沿和下降沿有效
TIM3->CNT = COUNTER_RESET;
TIM3->CR1 |= 0x01;    //CEN=1,使能定时器
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2014-11-8
在线时间
1 小时
发表于 2014-11-26 08:49:51 | 显示全部楼层
在对 TIM3->CCMR1初始化中,为什么只对IC1F进行滤波器初始化,而没有对IC2F滤波器初始化。
回复 支持 反对

使用道具 举报

4

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-3-5
在线时间
1 小时
发表于 2014-11-26 23:05:32 | 显示全部楼层
回复【5楼】科科1987:
---------------------------------
楼主,请问,是不是通用定时器的TIMx_CH1和TIMx_CH2对应的都是,编码器模式的T1和T2。查找TIMx_CH1和TIMx_CH2对应的GPIO口就是,编码器的两个脉冲输入信号?求楼主解答。
回复 支持 反对

使用道具 举报

2

主题

394

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2112
金钱
2112
注册时间
2012-5-8
在线时间
314 小时
发表于 2014-11-27 08:49:11 | 显示全部楼层
顶楼主,精品
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2014-11-28 10:51:44 | 显示全部楼层
回复【108楼】humanking7:
---------------------------------
1,是的。
2,是的,但需要配置计数方式--->选择编码器接口模式的方法是:如果计数器只在TI2的边沿计数,则置TIMx_SMCR寄存器中的SMS=001;如果只在TI1边沿计数,则置SMS=010;如果计数器同时在TI1和TI2边沿计数,则置SMS=011。
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2014-11-28 11:14:44 | 显示全部楼层
回复【106楼】mryjh:
---------------------------------
1、根据实际情况对输入信号滤波。
2、请看:http://www.openedv.com/posts/list/33617.htm
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

4

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
187
金钱
187
注册时间
2013-3-5
在线时间
1 小时
发表于 2014-11-29 02:15:48 | 显示全部楼层
回复【110楼】科科1987:
---------------------------------
多谢楼主,那么是不是T1和T2还可以绑定为CH3和CH4,是不是设置一下CC3S和CC4S(在寄存器TIMx_CCMR2),原来都是设置TIMx_CCMR1的CC1S和CC2S,不知道我的想法对不对。
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2014-11-29 10:35:57 | 显示全部楼层
回复【112楼】humanking7:
---------------------------------
不行的。
CC3S[1:0]:捕获/比较3选择 (Capture/Compare 3 selection) 位1:0 这2位定义通道的方向(输入/输出),及输入脚的选择: 00:CC3通道被配置为输出; 01:CC3通道被配置为输入,IC3映射在TI3上; 10:CC3通道被配置为输入,IC3映射在TI4上; 11:CC3通道被配置为输入,IC3映射在TRGI上。此模式仅工作在内部触发器输入被选中时(由TIMx_SMCR寄存器的TS位选择)。 注:CC3S仅在通道关闭时(TIMx_CCER寄存器的CC3E=’0’)才是可写的。
CC4S[1:0]:捕获/比较4选择 (Capture/Compare 4 selection) 位9:8 这2位定义通道的方向(输入/输出),及输入脚的选择: 00:CC4通道被配置为输出; 01:CC4通道被配置为输入,IC4映射在TI4上; 10:CC4通道被配置为输入,IC4映射在TI3上; 11:CC4通道被配置为输入,IC4映射在TRC上。此模式仅工作在内部触发器输入被选中时(由TIMx_SMCR寄存器的TS位选择)。 注:CC4S仅在通道关闭时(TIMx_CCER寄存器的CC4E=’0’)才是可写的。
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

2

主题

6

帖子

0

精华

新手上路

积分
42
金钱
42
注册时间
2011-4-13
在线时间
3 小时
发表于 2015-2-26 19:51:40 | 显示全部楼层
主题够好!楼长努力!
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2015-3-21
在线时间
23 小时
发表于 2015-3-22 11:07:07 | 显示全部楼层
回复【5楼】科科1987:
---------------------------------
大神,我用触摸屏显示数值,可是数值一直是闪烁的,怎么才能不让它闪烁啊
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2015-3-22 18:28:16 | 显示全部楼层
回复【116楼】波波:
---------------------------------
是屏幕的问题?还是有干扰?
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2015-3-21
在线时间
23 小时
发表于 2015-3-22 20:57:07 | 显示全部楼层
回复【117楼】科科1987:
---------------------------------
大神,您看一下我的主程序,触摸屏的显示程序就是例程里的
int main(void)
{  
    char str[20] ;
  u16 currentCount;
u8 lcd_id[12]; //??·?LCD ID×?·???
   Stm32_Clock_Init(9); //?????±???è??
uart_init(72,9600);   //????????????9600
delay_init(72);       //???±?????? 
LED_Init();    //????????LED??????????????
  LCD_Init();
Encoder1_Init();
delay_ms(10);
      OINT_COLOR=RED; 
sprintf((char*)lcd_id,"LCD ID:%04X",lcddev.id);//??LCD ID?ò????lcd_id??×é
     while(1)

{
delay_ms(1000);
  currentCount = TIM3 -> CNT;//TIM4 -> CNT ?????÷?????÷
//printf("±à???÷??????????%d \n",currentCount+1);

 sprintf(str,"%d \n",currentCount);
   LCD_Clear(WHITE);
        OINT_COLOR=RED;   
    LCD_ShowString(147,110,200,24,24,str);

}
}
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2015-3-21
在线时间
23 小时
发表于 2015-3-22 20:57:53 | 显示全部楼层
回复【117楼】科科1987:
---------------------------------
您看一下,是不是我显示的程序有问题啊
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2015-3-23 15:13:57 | 显示全部楼层
回复【119楼】波波:
---------------------------------
我觉得显示没有问题,应该是编码器信号有干扰吧
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2015-3-21
在线时间
23 小时
发表于 2015-3-23 21:29:47 | 显示全部楼层
回复【120楼】科科1987:
---------------------------------
大神,我的编码器是200线的,我想一圈输出200个码,在您的程序里应该怎么改啊
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2015-3-21
在线时间
23 小时
发表于 2015-3-23 21:38:29 | 显示全部楼层
回复【120楼】科科1987:
---------------------------------
大神,我想把TIM3分别改成TIM4和TIM5的计数,我该怎么改啊,谢谢您了
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2015-3-21
在线时间
23 小时
发表于 2015-3-23 21:44:57 | 显示全部楼层
回复【120楼】科科1987:
---------------------------------
我改过TIM4但是数乱跳,程序该怎么改啊大神,需要注意哪些问题啊
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2015-3-24 09:04:07 | 显示全部楼层
回复【123楼】波波:
---------------------------------
先看看stm32参考手册中的编码器模式
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2015-3-21
在线时间
23 小时
发表于 2015-3-24 20:01:31 | 显示全部楼层
大神,我的编码器是200线的,我想一圈输出200个码,在您的程序里应该怎么改啊
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2015-3-21
在线时间
23 小时
发表于 2015-3-25 00:57:14 | 显示全部楼层
回复【17楼】murongyiruo:
--------------------------------亲,你的问题解决了吗,我的也出现这样的问题
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2015-3-21
在线时间
23 小时
发表于 2015-3-25 17:30:10 | 显示全部楼层
回复【124楼】科科1987:
---------------------------------
大神,我想用TIM1定时器,下面是我的程序,但是输出的数值无变化,编码器输出的没有问题,高级定时器和通用定时器有什么区别啊
?void Encoder_Init()
{
/* TIM1 clock source enable */ 
RCC->APB2ENR|=1<<11;       
/* Enable GPIOA, clock */
RCC->APB2ENR|=1<<2;    



/* Configure A.08\09     as encoder input */
GPIOA->CRH&=0XFFFFFFF0;//PA08
GPIOA->CRH|=0X00000004;//
GPIOA->CRH&=0XFFFFFF0F;//PA09
GPIOA->CRH|=0X00000040;//

/* Enable the TIM1 Update Interrupt */
//???????????????±?è????????????????
TIM1->DIER|=1<<0;   //???í?ü??????  TIM1->DIER DMA/?????????????÷ 
TIM1->DIER|=1<<6;   //???í??·?????
MY_NVIC_Init(1,3,TIM1_UP_IRQn,2);

/* Timer configuration in Encoder mode */ 
TIM1->SC = 0x0;//?¤·????÷    TIM1->SC  ?¤·????÷?????÷
TIM1->ARR = 2000;//ENCODER_TIM_PERIOD-1;//?è?¨?????÷×?????×°??    TIM1->ARR×???×°???????÷
TIM1->CR1 &=~(3<<8);// ?????±??·???????·???
TIM1->CR1 &=~(3<<5);// ????????????:±???????????

TIM1->CCMR1 |= 1<<0; //CC1S='01' IC1FP1??????TI1
TIM1->CCMR1 |= 1<<8; //CC2S='01' IC2FP2??????TI2
TIM1->CCER &= ~(1<<1);  //CC1P='0'  IC1FP1??·??à??IC1FP1=TI1
TIM1->CCER &= ~(1<<5);  //CC2P='0'  IC2FP2??·??à??IC2FP2=TI2
TIM1->CCMR1 |= 3<<4; // IC1F='0011' ????????1???¨?÷
TIM1->SMCR |= 3<<0;  //SMS='011' ?ù?????????ù???????????????????§
TIM1->CNT =0; //COUNTER_RESET;
TIM1->CR1|= 1<<0;    //CEN=1???????¨?±?÷
}
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2015-3-25 18:52:25 | 显示全部楼层
回复【127楼】波波:
---------------------------------
高级定时器和普通定时器的区别不是一两句就可以说完的,具体可以看看《stm32参考手册》。编码器模式没有区别。
不要急,出问题是正常的。
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

0

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
172
金钱
172
注册时间
2015-3-21
在线时间
23 小时
发表于 2015-3-26 11:28:41 | 显示全部楼层
回复【128楼】科科1987:
---------------------------------
恩恩好的,谢谢你
回复 支持 反对

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-4-30
在线时间
2 小时
发表于 2015-4-30 20:42:35 | 显示全部楼层
楼主,我按照你的例程编写了,也是显示0。。。我看好多网友都是这个问题,没人把解决过程贴出来??
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2015-5-2 09:55:29 | 显示全部楼层
回复【130楼】吃咯:
---------------------------------
方便的话,把硬件电路贴出来看看
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

5

主题

46

帖子

0

精华

初级会员

Rank: 2

积分
94
金钱
94
注册时间
2015-4-30
在线时间
2 小时
发表于 2015-5-6 18:04:10 | 显示全部楼层
回复【131楼】科科1987:
---------------------------------
void Encoder_Init(void) 

/* TIM4 clock source enable */  
RCC->APB1ENR|=1<<2;       //TIM4?±?????? 
/* Enable GPIOA, clock */ 
RCC->APB2ENR|=1<<3;    //????PORTB?±?? 

/* Configure B.06,07 as encoder input */ 
GPIOB->CRL&=0XF0FFFFFF;//PB6 
GPIOB->CRL|=0X08000000;//???????? 
GPIOB->CRL&=0X0FFFFFFF;//PB7 
GPIOB->CRL|=0X80000000;//???????? 

/* Enable the TIM3 Update Interrupt */ 
//?????????÷?????±?è????????????????
TIM4->DIER|=1<<0;   //???í?ü??????
TIM4->DIER|=1<<6;   //???í??·?????
MY_NVIC_Init(1,3,TIM4_IRQn,2);//×é2,??????????1,????????3 //MY_NVIC_Init(1,3,TIM3_IRQn,2);//????1??×???????3??×é2

/* Timer configuration in Encoder mode */  
TIM4->SC = 0x00;//?¤·????÷
TIM4->ARR = ENCODER_TIM_PERIOD-1;//?è?¨?????÷×?????×°??  
TIM4->CR1 &=~(3<<8);// ?????±??·???:??·??? 
TIM4->CR1 &=~(3<<5);// ????????????:±??????????? 

TIM4->CCMR1 |= 1<<0; //CC1S='01' IC1FP1??????TI1 
TIM4->CCMR1 |= 1<<8; //CC2S='01' IC2FP2??????TI2 
TIM4->CCER &= ~(1<<1);  //CC1P='0'  IC1FP1??·??à,IC1FP1=TI1 
TIM4->CCER &= ~(1<<5);  //CC2P='0'  IC2FP2??·??à,IC2FP2=TI2 
TIM4->CCMR1 |= 3<<4; // IC1F='0011' ????????1???¨?÷
TIM4->SMCR |= 3<<0;  //SMS='011' ?ù?????????ù???????????????????§
TIM4->CNT = COUNTER_RESET; 
TIM4->CR1 |= 1<<0;    //CEN=1,?????¨?±?÷ 
}
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2015-5-7 09:52:52 | 显示全部楼层
 回复【132楼】 吃咯 :
---------------------------------

永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2015-3-29
在线时间
7 小时
发表于 2015-5-7 15:33:34 | 显示全部楼层
回复【46楼】科科1987:
---------------------------------
一定要两相输入??那我不是只能用输入捕获测速?因为我使用一相的码盘
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2015-5-9 12:05:22 | 显示全部楼层
回复【134楼】同志们辛苦了:
---------------------------------
单相的话就用输入捕获就可以了。
两相输入的话,可以识别正反转,抑制抖动。
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

3

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2015-3-29
在线时间
7 小时
发表于 2015-5-10 09:09:26 | 显示全部楼层
回复【135楼】科科1987:
---------------------------------
我改为外部时钟模式,免去进中断频繁的问题,就是抖动的干扰挺大的
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2015-5-10 09:29:38 | 显示全部楼层
回复【136楼】同志们辛苦了:
---------------------------------
只要中断足够短,进中断频繁也不会影响什么。
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

4

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
82
金钱
82
注册时间
2015-3-19
在线时间
11 小时
发表于 2015-5-12 09:22:43 | 显示全部楼层
你好,请问你有库函数版本的,编码器程序吗
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2015-5-12 14:35:41 | 显示全部楼层
回复【138楼】大宝1107:
---------------------------------
没写,照着寄存器版改起来也方便。
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

0

主题

12

帖子

0

精华

新手上路

积分
32
金钱
32
注册时间
2015-4-24
在线时间
0 小时
发表于 2015-5-15 18:49:21 | 显示全部楼层
正反转时会出错。先正后负且不超出ARR才有效,我也在弄这个。遇到的问题是进不了中断
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2015-5-16 14:25:46 | 显示全部楼层
回复【140楼】yuhui:
---------------------------------
问题描述不详细
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

0

主题

14

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-5-22
在线时间
0 小时
发表于 2015-5-22 16:28:32 | 显示全部楼层
回复【7楼】科科1987:
---------------------------------
请问为什么观察到的计数值总是1
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2015-5-22 17:02:00 | 显示全部楼层
回复【142楼】血狼刃:
---------------------------------
信号是不是有干扰
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

0

主题

14

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-5-22
在线时间
0 小时
发表于 2015-5-22 17:18:07 | 显示全部楼层
回复【143楼】科科1987:
---------------------------------
应该是没有干扰的,timer.c里的tim4的底层程序是不是与此无关
回复 支持 反对

使用道具 举报

0

主题

14

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-5-22
在线时间
0 小时
发表于 2015-5-22 17:21:16 | 显示全部楼层
回复【143楼】科科1987:
---------------------------------
如果用两个定时器比如timer3和timer4是否可以用TIM3输出pwm信号驱动电机,TIM4来是编码器计数
回复 支持 反对

使用道具 举报

0

主题

14

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-5-22
在线时间
0 小时
发表于 2015-5-22 17:24:28 | 显示全部楼层
回复【143楼】科科1987:
---------------------------------
串口助手显示的计数值是否就死编码器的主动速度的4倍
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2015-5-22 17:33:00 | 显示全部楼层
回复【145楼】血狼刃:
---------------------------------

1,可以的;
2,A、B相上下沿都计数,就是4倍;
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

0

主题

14

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-5-22
在线时间
0 小时
发表于 2015-5-22 17:49:34 | 显示全部楼层
回复【147楼】科科1987:
---------------------------------
请问你qq号是多少,介不介意加qq聊  1049952505
回复 支持 反对

使用道具 举报

0

主题

14

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-5-22
在线时间
0 小时
发表于 2015-5-22 18:00:58 | 显示全部楼层
回复【147楼】科科1987:
---------------------------------
TIM3->CNT = COUNTER_RESET;请问这句话是什么意思
回复 支持 反对

使用道具 举报

0

主题

14

帖子

0

精华

新手上路

积分
34
金钱
34
注册时间
2015-5-22
在线时间
0 小时
发表于 2015-5-22 18:20:43 | 显示全部楼层

为什么编码器没有转,串口里显示的有很大的计数值
回复 支持 反对

使用道具 举报

38

主题

527

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1424
金钱
1424
注册时间
2011-11-27
在线时间
122 小时
 楼主| 发表于 2015-5-22 18:58:05 | 显示全部楼层
回复【150楼】血狼刃:
---------------------------------
TIM3->CNT = COUNTER_RESET;计数值复位,你可根据自己实际需要修改。

可能是你的编码器出来的信号受到干扰了。
永远保持一颗学习的心态。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-14 12:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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