OpenEdv-开源电子网

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

STM32的TIM3编码器模式计数

[复制链接]

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-5-29
在线时间
0 小时
发表于 2014-3-26 18:03:09 | 显示全部楼层 |阅读模式

            
原子哥帮看看计数咋不准呢?

NVIC_InitTypeDef  NVIC_InitStructure;
GPIO_InitTypeDef  GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);  //使能PA,PA端口时钟
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7;
  GPIO_InitStructure.GPIO_Mode =GPIO_Mode_IN_FLOATING;// GPIO_Mode_IPU; //GPIO_Mode_IN_FLOATING;//
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
  GPIO_Init(GPIOA, &GPIO_InitStructure);
 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
 TIM3->DIER|=1<<0;   //允许更新中断                               
 NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn;//TIM3的优先级
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;//TIMx_SUB_PRIORITY;
 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //
    NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
    NVIC_Init(&NVIC_InitStructure);
TIM3->SC = 0x0;//预分频器
    TIM3->ARR = 3;//设定计数器自动重装值
    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<<0;        //CC1P='0'        IC1FP1反相,IC1FP1=TI1
    TIM3->CCER |= 1<<4;        //CC2P='0'        IC2FP2反相,IC2FP2=TI2
 TIM3->CCER &= ~(1<<1);        //CC1P='0'        IC1FP1不反相,IC1FP1=TI1
    TIM3->CCER &= ~(1<<5);        //CC2P='0'        IC2FP2不反相,IC2FP2=TI2
  // TIM3->CCER |= 1<<1;
  // TIM3->CCER |= 1<<5;
   // TIM3->CCMR1 |=0x0000;
    TIM3->SMCR |= 3<<0;        //SMS='011' 所有的输入均在上升沿和下降沿有效
    TIM3->CNT =0;
    TIM3->CR1 |= 0x01;
void TIM3_IRQHandler(void)
{
    int16_t tim_count;
    tim_count=TIM_GetCounter(TIM3);//获取ENCODER_TIMER TIM3的值
    if(tim_count>=3)if(d<100)d++;   
    else if(d>0)d--;   
 TIM3->SR=0;
}

 

 

 

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-3-26 20:58:37 | 显示全部楼层
没用过这个模式。。。
我只做过外部计数模式。在论坛发过帖子。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

10

主题

25

帖子

0

精华

初级会员

Rank: 2

积分
85
金钱
85
注册时间
2013-5-29
在线时间
0 小时
 楼主| 发表于 2014-3-27 17:05:11 | 显示全部楼层
     问题终于解决了,总结不能光用别人的成果,还是要自己用心做事才行
回复 支持 反对

使用道具 举报

1

主题

5

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2016-1-4
在线时间
6 小时
发表于 2016-1-17 10:25:10 | 显示全部楼层
QFLN 发表于 2014-3-27 17:05
&nbsp;&nbsp;&nbsp;&nbsp; 问题终于解决了,总结不能光用别人的成果,还是要自己用心做事才行

怎么解决的,我现在也是计数一会准一会不准。。。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 15:14

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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