A.选择内部时钟模式
默认不配置状态下HAL库初始化TIM的结构体都默认是配往内部主频时钟APB线
g_timx_cnt_chy_handle.Instance = TIM2;
g_timx_cnt_chy_handle.Init.Prescaler = psc;
g_timx_cnt_chy_handle.Init.CounterMode = TIM_COUNTERMODE_UP;
g_timx_cnt_chy_handle.Init.Period = 65535;
HAL_TIM_IC_Init(&g_timx_cnt_chy_handle);
B.选择外部时钟模式1
需要借助从模式选择结构体,将从模式配置成外部时钟模式一
TIM_SlaveConfigTypeDef tim_salve_config = {0};
g_timx_cnt_chy_handle.Instance = TIM2;
g_timx_cnt_chy_handle.Init.Prescaler = psc;
g_timx_cnt_chy_handle.Init.CounterMode = TIM_COUNTERMODE_UP;
g_timx_cnt_chy_handle.Init.Period = 65535;
HAL_TIM_IC_Init(&g_timx_cnt_chy_handle);
tim_salve_config.SlaveMode = TIM_SLAVEMODE_EXTERNAL1;
tim_salve_config.InputTrigger = TIM_TS_TI1F_ED;
tim_salve_config.TriggerPolarity = TIM_TRIGGERPOLARITY_RISING;
tim_salve_config.TriggerFilter = 0;
HAL_TIM_SlaveConfigSynchro(&g_timx_cnt_chy_handle, &tim_salve_config);
HAL_TIM_IC_Start(&g_timx_cnt_chy_handle, TIM_CHANNEL_1);
其中的触发源可以选择以下几种,这个函数能使从模式的触发结果变成让计数器加加
C.选择外部时钟模式二
找到了这个函数但是还没成功移植过
D.编码器模式
未接触只有标准库版本