×
单片机 > 单片机程序设计 > 详情

STM32 定时器正交编码器模式 寄存器配置程序

发布时间:2020-06-01 发布时间:
|

void Encoder_Init(void) 

 
RCC->APB1ENR|=1<<1; //TIM3时钟使能 
 
RCC->APB2ENR|=1<<2; //使能PORTA时钟 

 
GPIOA->CRL&=0XF0FFFFFF;//PA6 
GPIOA->CRL|=0X04000000;//浮空输入 
GPIOA->CRL&=0X0FFFFFFF;//PA7 
GPIOA->CRL|=0X40000000;//浮空输入 

 
TIM3->DIER|=1<<0; //允许更新中断
TIM3->DIER|=1<<6; //允许触发中断 
MY_NVIC_Init(1,3,TIM3_IRQChannel,2); 

 
TIM3->PSC = 0x0;//预分频器 
TIM3->ARR = ENCODER_TIM_PERIOD-1;//设定计数器自动重装值 
TIM3->CR1 &=~(3<<8);// 选择时钟分频:不分频 
TIM3->CR1 &=~(3<<5);// 选择计数模式:边沿对齐模式 

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,使能定时器 

关键字:STM32  定时器  正交编码器模式  寄存器配置 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
单片机中高阻态的实质及意义