打印
[STM32F1]

求助 stm32f107 正交编码器配置 TIM4重映射到PD后为什么没计数

[复制链接]
1169|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yzhiju|  楼主 | 2017-10-24 10:34 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
       

GPIO_InitTypeDef GPIO_InitStructure;
        TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;
        TIM_ICInitTypeDef TIM_ICInitStructure;          

        //PD13 ch1  A,PD14 ch2 B
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);//

        GPIO_PinRemapConfig(GPIO_Remap_TIM4, ENABLE);
       
        GPIO_StructInit(&GPIO_InitStructure);//将GPIO_InitStruct中的参数按缺省值输入
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13 | GPIO_Pin_14;         
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//        GPIO_Mode_IN_FLOATING GPIO_Mode_IPD
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOD, &GPIO_InitStructure);
       
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE);//使能TIM4时钟       
        //NVIC_Config(2);

        TIM_DeInit(TIM4);
        TIM_TimeBaseStructInit(&TIM_TimeBaseStructure);
        TIM_TimeBaseStructure.TIM_Period = 2400;  //设定计数器重装值   TIMx_ARR = 359*4
        TIM_TimeBaseStructure.TIM_Prescaler = 0 ; //TIM3时钟预分频值
        TIM_TimeBaseStructure.TIM_ClockDivision =TIM_CKD_DIV1 ;//设置时钟分割 T_dts = T_ck_int       
        TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数
        TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure);              
                 
        TIM_EncoderInterfaceConfig(TIM4, TIM_EncoderMode_TI12, TIM_ICPolarity_BothEdge ,TIM_ICPolarity_BothEdge);//使用编码器模式3,上升都计数
//        TIM_ETRClockMode2Config(TIM4, TIM_ExtTRGPSC_OFF, TIM_ExtTRGPolarity_NonInverted, 0);
        TIM_ICStructInit(&TIM_ICInitStructure);//将结构体中的内容缺省输入
        TIM_ICInitStructure.TIM_ICFilter = 6;  //选择输入比较滤波器
        TIM_ICInit(TIM4, &TIM_ICInitStructure);//将TIM_ICInitStructure中的指定参数初始化TIM3

        TIM4->CNT = 0;//

        TIM_Cmd(TIM4, ENABLE);   //启动TIM4定时器
沙发
yzhiju|  楼主 | 2017-10-24 11:22 | 只看该作者
发现TI1FP1 TI2FP2都是一组一组的 不知道能不能单独使用TI1FP1或者TI2FP2 或者使用TI3和TI4 能不能作为编码器AB相

1508815067(1).png (74.37 KB )

1508815067(1).png

使用特权

评论回复
板凳
yzhiju|  楼主 | 2017-10-24 18:47 | 只看该作者
使用TI1FP1 TI2FP2有数据了

使用特权

评论回复
地板
mmuuss586| | 2017-10-24 20:51 | 只看该作者
yzhiju 发表于 2017-10-24 11:22
发现TI1FP1 TI2FP2都是一组一组的 不知道能不能单独使用TI1FP1或者TI2FP2 或者使用TI3和TI4 能不能作为编码 ...

单独不行的;

使用特权

评论回复
5
Mot_Amour| | 2019-6-27 16:59 | 只看该作者
       2年过去,想必已经配好。
        “TIM_ICStructInit(&TIM_ICInitStructure);//将结构体中的内容缺省输入
        TIM_ICInitStructure.TIM_ICFilter = 6;  //选择输入比较滤波器
        TIM_ICInit(TIM4, &TIM_ICInitStructure);//将TIM_ICInitStructure中的指定参数初始化TIM3”
        和“TIM_EncoderInterfaceConfig(TIM4, TIM_EncoderMode_TI12, TIM_ICPolarity_BothEdge ,TIM_ICPolarity_BothEdge)”重复配置。IC结构体代码建议删除

使用特权

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

本版积分规则

7

主题

37

帖子

1

粉丝