打印

stm32 编码器一直正反转,计数不正确怎么解决哦

[复制链接]
5654|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mjfmjj|  楼主 | 2011-11-1 09:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
mjfmjj|  楼主 | 2011-11-1 09:22 | 只看该作者
额   编码器接口没配置,直接初始化了,,, 下面是初始化函数
void Encoder_Configuration(void)
{
        TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
        TIM_ICInitTypeDef TIM_ICInitStructure;

       


        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);





        TIM_DeInit(TIM1);
        TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);




        TIM_TimeBaseStructure.TIM_Prescaler = 1; // No prescaling
        TIM_TimeBaseStructure.TIM_Period = 65535;
        TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1;
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;   
        TIM_TimeBaseInit(TIM1, &TIM_TimeBaseStructure);
       
        TIM_EncoderInterfaceConfig(TIM1, TIM_EncoderMode_TI2,
                                     TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);
        TIM_ICStructInit(&TIM_ICInitStructure);
        TIM_ICInitStructure.TIM_ICFilter =6   ;//;TIM_ICFilter_Mask  6

        TIM_ICInit(TIM1, &TIM_ICInitStructure);
       
        // Clear all pending interrupts
        TIM_ClearFlag(TIM1, TIM_FLAG_Update);
        TIM_ITConfig(TIM1, TIM_IT_Update, ENABLE);
        //Reset counter
        TIM1->CNT = T1_Register_val;
       
        TIM_Cmd(TIM1, ENABLE);
}

使用特权

评论回复
板凳
peng61924| | 2013-1-15 20:58 | 只看该作者
我也遇到同样的问题,只是我的用CPLD读取计数值,还在寻找解决方法。

使用特权

评论回复
地板
airwill| | 2013-1-15 21:59 | 只看该作者
会不会是硬件的问题? 信号处理得不够干净, 或者信号边沿拖尾严重.

使用特权

评论回复
5
uet_cache| | 2013-1-16 20:47 | 只看该作者
楼主解决没。。

使用特权

评论回复
6
wuzx-61| | 2013-1-16 21:19 | 只看该作者
楼主解决了通报一声,关注.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

2

帖子

0

粉丝