新手上路
- 积分
- 33
- 金钱
- 33
- 注册时间
- 2022-2-3
- 在线时间
- 18 小时
|
5金钱
我采用下面方法配置定时器编码器模式,使用stm32f103vet6,一直为0。使用stm32f103vct6,却正常。可能是什么原因,怎么解决。void Encoder4_Init(void){
GPIO_InitTypeDef GPIO_InitStructure; // 引脚初始化的结构体
TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure; // 定时器初始化的结构体
TIM_ICInitTypeDef TIM_ICInitStructure; // 定时器编码器模式初始化的结构体
RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4, ENABLE); // 使能TIM4时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE); // 使能GPIOB时钟
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7; // PB6、PB7
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; // 浮空输入
GPIO_Init(GPIOB, &GPIO_InitStructure); // 根据GPIO_InitStructure的参数初始化GPIOB0
TIM_TimeBaseStructure.TIM_Period = 0xffff; // 设定计数器自动重装值
TIM_TimeBaseStructure.TIM_Prescaler = 0; // 预分频器
TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; // 选择时钟分频:不分频
TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; // TIM向上计数模式
TIM_TimeBaseInit(TIM4, &TIM_TimeBaseStructure); // 根据TIM_TimeBaseInitStruct的参数初始化定时器TIM4
TIM_EncoderInterfaceConfig(TIM4, TIM_EncoderMode_TI12, TIM_ICPolarity_Rising, TIM_ICPolarity_Rising);//使用编码器模式3:CH1、CH2同时计数,四分频
//初始化TIM4输入捕获参数
TIM_ICStructInit(&TIM_ICInitStructure); // 把TIM_ICInitStruct 中的每一个参数按缺省值填入
TIM_ICInitStructure.TIM_ICFilter = 0x03; // IC1F=0011 配置输入滤波器(连续采样八次)
TIM_ICInit(TIM4, &TIM_ICInitStructure); // 根TIM_ICInitStructure参数初始化定时器TIM4编码器模式
TIM_Cmd(TIM4, ENABLE); // 使能定时器4
}
|
|