请问有会tim3以外tim读取旋转编码器的吗?(在线等)

2019-07-20 02:51发布

如题,本人遇到困境,经测试,只能用tim3计数器模式读取欧姆龙编码器,而其他tim一照着这个使用就傻逼了(下附tim3寄存器配置代码)
    RCC->APB1ENR|=1<<1;         
    RCC->APB2ENR|=1<<0;         
    RCC->APB2ENR|=1<<2;  
    GPIOA->CRL&=0X00FFFFFF;   
    GPIOA->CRL|=0X44000000;          
    TIM3->ARR=arr;           
    TIM3->PSC=psc;            
    TIM3->CCMR1 |= 1<<0;          
    TIM3->CCMR1 |= 1<<8;         
    TIM3->CCER |= 0<<1;               
    TIM3->CCER |= 0<<5;        
    TIM3->SMCR |= 3<<0;               
    TIM3->CR1 |= 1<<0;               

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
Lilo
1楼-- · 2019-07-20 20:26
我的是增量式  我都想放弃了  用外部中断
xuyaqi
2楼-- · 2019-07-21 01:46
我用定时器4也成功。
//编码器初始化函数
void encoder_Init(void)
{
RCC->AHB1ENR|=1<<0;     //p135 使能PORTA时钟
RCC->AHB1ENR|=1<<1;     //p135 使能PORTB时钟

//RCC->APB2ENR|=1<<0;     //p146 AFIOEN辅助功能IO时钟使能
//RCC->APB2ENR|=1<<4;    //p70 使能PORTC 时钟
RCC->APB1ENR|=1<<1;     //p139 定时器3时钟使能
RCC->APB1ENR|=1<<2;     //p138 定时器4时钟使能

GPIO_Set(GPIOA,PIN6|PIN7,GPIO_MODE_AF,GPIO_OTYPE_OD,GPIO_SPEED_100M,GPIO_PUPD_PU);//PA6.PA7输入
//GPIOA->CRL&=0X00FFFFff;//PA6.PA7输入
  //GPIOA->CRL|=0X44000000;//浮空输入

GPIO_Set(GPIOB,PIN6|PIN7,GPIO_MODE_AF,GPIO_OTYPE_OD,GPIO_SPEED_100M,GPIO_PUPD_PU);//PB6.PB7输入
//GPIOB->CRL&=0X00FFFFff;//PB6.PB7输入
  //GPIOB->CRL|=0X44000000;//浮空输入



GPIO_AF_Set(GPIOA,6,2); //PA6,AF2
GPIO_AF_Set(GPIOA,7,2); //PA7,AF2
//AFIO->MAPR&=0XFFFFF0Ff; //p122 定时器3的重映像 CH1/PA6,CH2/PA7
//AFIO->MAPR|=0X00000000;

GPIO_AF_Set(GPIOB,6,2); //PB6,AF2
GPIO_AF_Set(GPIOB,7,2); //PB7,AF2
//AFIO->MAPR&=0XFFFF0fFf; //p122 定时器4的重映像 CH1/PA6,CH2/PA7
//AFIO->MAPR|=0X00000000;

//TIM3->ARR&=0XFFFFFfF0;   //自动重装载寄存器
//TIM3->ARR|=0X7fff;   //P293 自动重装载寄存器
//TIM4->ARR|=0X7fff;   //P293 自动重装载寄存器


TIM3->CCMR1|=1<<0;  //CC1S=01捕获/比较模式
  TIM3->CCMR1|=1<<8;  //CC2S=01

TIM4->CCMR1|=1<<0;  //CC1S=01捕获/比较模式
  TIM4->CCMR1|=1<<8;  //CC2S=01

TIM3->CCER|=0<<1;  //CC1P=0 捕获/比较使能
  TIM3->CCER|=0<<5;  //CC2P=0
//TIM3->CCER&=0XFFFFFfF0;   //CC1P和CC2P位
//TIM3->CCER|=0X00000001;   //P292 捕获使能

TIM4->CCER|=0<<1;  //CC1P=0 捕获/比较使能
  TIM4->CCER|=0<<5;  //CC2P=0
  

TIM3->SMCR|=3<<0; //SMS=011
//TIM3->SMCR|=6<<4; //TS=110

TIM4->SMCR|=3<<0; //

//RCC->APB1ENR|=1<<1; //p71 1-TIM3时钟使能 3-TIM5时钟使能

TIM3->CR1|=1<<0;;   //CEN使能
//TIM5->CR1|=0x01;    //p282 使能定时器3


TIM4->CR1|=1<<0;;   //CEN使能



}

一周热门 更多>