最近在复习kbu6的模块,其中关于定时器的记忆比较模糊,再来强化强化
仔细看了看相关HAL库代码果然有一些额外的收获
对定时器tim7:
这个定时器还是比较准的,其调用方法如下:
HAL_TIM_Base_Start_IT(&htim7);
从上述代码中不难发现其特点即: 基本中断定时器
其回调函数:
void HAL_TIM_PeriodElapsedCallback(TIM_HandleTypeDef *htim);
即Elapsed经过,Period一段时间,即总体为:经过一段时间回调
对于TIM3这个定时器用于输入捕获:
启动函数:
HAL_TIM_IC_Start_IT(&htim3, TIM_CHANNEL_3);
IC即INPUT CAPTURE,输入捕获,名字是中断输入捕获,其中通道特别强调了是定时器里的通道3,即TIM就是在定时器里的,而不是HAL里的
目前理解是HAL里的函数大部分是实现框架,这个框架可以供多个对象使用
回调函数:
void HAL_TIM_IC_CaptureCallback(TIM_HandleTypeDef *htim)
回调函数当然也叫输入捕获回调函数
HAL_TIM_ReadCapturedValue(&htim3, TIM_CHANNEL_3)
这个函数是定时器里,读取捕获数值的函数,函数名字和效果是相匹配的,其读取的就是定时器通道3的数值
__HAL_TIM_SET_CAPTUREPOLARITY(&htim3, TIM_CHANNEL_3, TIM_ICPOLARITY_FALLING);
这个函数就比较特别了,它为定时器里设置捕获极性的函数,POLARITY是极性的意思,后面设置极性特别强调是设置定时器里输入捕获下降极性,因为定时器里还有输出捕获极性,所以一定是要强调输入捕获极性的