STM32定时器正交编码器接口程序

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/******************************************************************************

*******************************************************************************

/

#include ""

void TIM3_Mode_Config(void)

{

GPIO_InitTypeDef GPIO_InitStructure;

TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;

TIM_ICInitTypeDef TIM_ICInitStructure;

/*----------------------------------------------------------------*/

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);

GPIO_StructInit(&GPIO_InitStructure);

/* Configure ,07 as encoder input */

= GPIO_Pin_6 | GPIO_Pin_7;

= GPIO_Mode_IN_FLOATING;

GPIO_Init(GPIOA, &GPIO_InitStructure);

/*----------------------------------------------------------------*/

RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //使能TIM3

TIM_DeInit(TIM3);

TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

=0xffff; //

=0; //设置预分频:

=TIM_CKD_DIV1 ; //设置时钟分频系数:不分频

= TIM_CounterMode_Up; //向上计数模式

// = TIM_CounterMode_CenterAligned1;

/*初始化TIM2定时器 */

TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure);

/*-----------------------------------------------------------------*/

//编码配置编码模式

TIM_EncoderInterfaceConfig(TIM3, TIM_EncoderMode_TI12,

TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);

//TIM_ICPolarity_Rising上升沿捕获

TIM_ICStructInit(&TIM_ICInitStructure);

= 6; //比较滤波器

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 =0;

TIM_Cmd(TIM3, ENABLE); //使能定时器3

}

void TIM_Init(void)

{

TIM3_Mode_Config();

}

"

#ifndef __ENCODER_H

#define __ENCODER_H

#include ""

void TIM_Init(void);

void TIM2_Mode_Config(void);

void TIM3_Mode_Config(void);

#endif

#include ""

#include ""

#include ""

#include ""

#include ""

volatile s16 encoder_num;

int main(void)

{

SystemInit();// 72m时钟

SysTick_Init();

TIM_Init();

NVIC_Config();

GPIO_74HC595_Config();

while (1)

{

encoder_num=TIM_GetCounter(TIM3);

dis_595(encoder_num,encoder_num);

}

}

相关文档
最新文档