OpenEdv-开源电子网

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

关于stm32编码器的问题

[复制链接]

2

主题

18

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2014-7-17
在线时间
0 小时
发表于 2014-7-18 15:54:24 | 显示全部楼层 |阅读模式
5金钱
最近研究编码器测角度研究了两天了,写的程序一直没有现象,求大神帮忙看一下,程序哪里有问题
#include "encoder.h"
void TIM3_Mode_Config(void)
{

GPIO_InitTypeDef GPIO_InitStructure;
  TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
TIM_ICInitTypeDef TIM_ICInitStructure;                 
NVIC_InitTypeDef NVIC_InitStructure;
/*----------------------------------------------------------------*/
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); 
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);             
  GPIO_StructInit(&GPIO_InitStructure);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 | GPIO_Pin_7;          
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; 
//GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  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_Period =0x07cf;      
  TIM_TimeBaseStructure.TIM_Prescaler =0;       
  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 =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);  
}
 
void TIM_Init(void)
{
  TIM3_Mode_Config();
}
-----------------------------------------------------------------------------------------------------------------------------------------------------

#include "delay.h"
#include "delay.h"
#include "GUI.h"
#include "sys.h"
#include "Lcd_Driver.h"
#include "usart.h"
#include "encoder.h"

 int main(void)
 {
  uint16_t encoder_num,a[5],t,d;
  float jiaodu,temp;  
delay_init();      
NVIC_Configuration(); 
uart_init(115200); 
LCD_LED_SET;    
Lcd_Init(0);
TIM_Init();
Lcd_Clear(GRAY0);

Gui_DrawFont_GBK16(0,40,BLUE,GRAY0,"当前角度:");
Gui_DrawFont_GBK16(42,60,RED,GRAY0,"000.00");
  while(1)
{
delay_ms(500);   
    encoder_num=TIM_GetCounter(TIM3);
jiaodu=0.72*encoder_num;
d=jiaodu;
t=d/10;
a[0]=t/10;
Gui_DrawFont_Num(42,60,RED,GRAY0,a[0]+0x10);
 a[1]=t%10;
Gui_DrawFont_Num(50,60,RED,GRAY0,a[1]+0x10);
a[2]=d%t;
Gui_DrawFont_Num(58,60,RED,GRAY0,a[2]+0x10);
temp=jiaodu-d;
temp=temp*10;
a[3]=temp;
Gui_DrawFont_Num(74,60,RED,GRAY0,a[3]+0x10);
temp=temp-a[3];
temp=temp*10;
a[4]=temp;
Gui_DrawFont_Num(82,60,RED,GRAY0,a[4]+0x10);
}

 }



安逸的生活只会毁了你
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-7-18 16:42:58 | 显示全部楼层
记得这个编码器测角度不是这样用的,仔细研究一下数据手册看下,呵呵
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

2

主题

18

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2014-7-17
在线时间
0 小时
 楼主| 发表于 2014-7-18 16:50:10 | 显示全部楼层
回复【2楼】Badu_Space:
---------------------------------
数据手册上没写多少东西,这是根据网上资料写的程序。大神,能指点一下吗
安逸的生活只会毁了你
回复

使用道具 举报

120

主题

7878

帖子

13

精华

资深版主

Rank: 8Rank: 8

积分
12012
金钱
12012
注册时间
2013-9-10
在线时间
427 小时
发表于 2014-7-18 16:54:02 | 显示全部楼层
回复【3楼】伤心地中海:
---------------------------------
没用过,也不知道怎么指点。呵呵
现在,程序把烂铜烂铁变得智能化了,人呢,一旦离开了这烂铜烂铁就不知道干啥了
回复

使用道具 举报

2

主题

18

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2014-7-17
在线时间
0 小时
 楼主| 发表于 2014-7-18 17:11:23 | 显示全部楼层
恩,好吧。。
安逸的生活只会毁了你
回复

使用道具 举报

2

主题

18

帖子

0

精华

新手上路

积分
46
金钱
46
注册时间
2014-7-17
在线时间
0 小时
 楼主| 发表于 2014-7-19 14:22:57 | 显示全部楼层
自己再顶一下。
安逸的生活只会毁了你
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-7-5 02:12

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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