这里大概讲述一下定时器的基本功能,个人能力有限,有些可能讲述不到,以后在补充。
定时器基本功能:
1、定时器功能
就是基本定时功能,16位的分频器,16位的计数器,可以产生中断,可以定时任意时间。
2、输入捕获功能
可以检测引脚的脉冲变化,进行控制。
3、输出比较功能
里面自带比较器,和配置信号进行比较,比较之后,然后在进行输出,这个也可以产生PWM,这个对PWM控制很强,一般情况下驱动舵机和步进电机。
4、PWM输出功能
就是正常的PWM波的输出,可以控制占空比
5、单脉冲调制功能
可以一个脉冲一个脉冲的进行输出,对脉冲的控制力度大
6、编码器功能
主要是针对电机驱动的,可以检测电机的速度
7、霍尔传感器功能
定时器的六种模式:
基本类型(Base)
输出比较(OC)
输入捕获(IC)
pwm(PWM)
单脉冲(One_Pulse)
编码器(Encoder)
定时器基本函数(仅仅定时作用):
/* Time Base functions ********************************************************/
返回值 | 函数名 | 参数 | 作用 |
HAL_StatusTypeDef | HAL_TIM_Base_Init | TIM_HandleTypeDef *htim | 定时初始化 |
HAL_StatusTypeDef | HAL_TIM_Base_DeInit | TIM_HandleTypeDef *htim | 引脚初始化之后的引脚恢复成默认的状态 |
无 | HAL_TIM_Base_MspInit | TIM_HandleTypeDef *htim | |
无 | HAL_TIM_Base_MspDeInit | TIM_HandleTypeDef *htim | |
HAL_StatusTypeDef | HAL_TIM_Base_Start | TIM_HandleTypeDef *htim | |
HAL_StatusTypeDef | HAL_TIM_Base_Stop | TIM_HandleTypeDef *htim | |
HAL_StatusTypeDef | HAL_TIM_Base_Start_IT | TIM_HandleTypeDef *htim | 启动中断 |
HAL_StatusTypeDef | HAL_TIM_Base_Stop_IT | TIM_HandleTypeDef *htim | 关闭中断 |
HAL_StatusTypeDef | HAL_TIM_Base_Start_DMA | TIM_HandleTypeDef *htim, uint32_t *pData, uint16_t Length |
|
HAL_StatusTypeDef | HAL_TIM_Base_Stop_DMA | TIM_HandleTypeDef *htim |
输出比较模式:
/* Timer Output Compare functions *********************************************/
返回值 | 函数名 | 参数 | 作用 |
HAL_StatusTypeDef | HAL_TIM_OC_Init | TIM_HandleTypeDef *htim | 输出比较初始化 |
HAL_StatusTypeDef | HAL_TIM_OC_DeInit | TIM_HandleTypeDef *htim | 引脚初始化之后的引脚恢复成默认的状态 |
无 | HAL_TIM_OC_MspInit | TIM_HandleTypeDef *htim | |
无 | HAL_TIM_OC_MspDeInit | TIM_HandleTypeDef *htim | |
HAL_StatusTypeDef | HAL_TIM_OC_Start | TIM_HandleTypeDef *htim, uint32_t Channel |
|
HAL_StatusTypeDef | HAL_TIM_OC_Stop | TIM_HandleTypeDef *htim, uint32_t Channel |
|
HAL_StatusTypeDef | HAL_TIM_OC_Start_IT | TIM_HandleTypeDef *htim, uint32_t Channel |
启动中断 |
HAL_StatusTypeDef | HAL_TIM_OC_Stop_IT | TIM_HandleTypeDef *htim, uint32_t Channel |
关闭中断 |
HAL_StatusTypeDef | HAL_TIM_OC_Start_DMA | TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length |
|
HAL_StatusTypeDef | HAL_TIM_OC_Stop_DMA | TIM_HandleTypeDef *htim, uint32_t Channel |
PWM模式:
/* Timer PWM functions ********************************************************/
返回值 | 函数名 | 参数 | 作用 |
HAL_StatusTypeDef | HAL_TIM_PWM_Init | TIM_HandleTypeDef *htim | PWM初始化 |
HAL_StatusTypeDef | HAL_TIM_PWM_DeInit | TIM_HandleTypeDef *htim | 引脚初始化之后的引脚恢复成默认的状态 |
无 | HAL_TIM_PWM_MspInit | TIM_HandleTypeDef *htim | |
无 | HAL_TIM_PWM_MspDeInit | TIM_HandleTypeDef *htim | |
HAL_StatusTypeDef | HAL_TIM_PWM_Start | TIM_HandleTypeDef *htim, uint32_t Channel |
|
HAL_StatusTypeDef | HAL_TIM_PWM_Stop | TIM_HandleTypeDef *htim, uint32_t Channel |
|
HAL_StatusTypeDef | HAL_TIM_PWM_Start_IT | TIM_HandleTypeDef *htim, uint32_t Channel |
启动中断 |
HAL_StatusTypeDef | HAL_TIM_PWM_Stop_IT | TIM_HandleTypeDef *htim, uint32_t Channel |
关闭中断 |
HAL_StatusTypeDef | HAL_TIM_PWM_Start_DMA | TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length |
|
HAL_StatusTypeDef | HAL_TIM_PWM_Stop_DMA | TIM_HandleTypeDef *htim, uint32_t Channel |
输入捕获模式:
/* Timer Input Capture functions **********************************************/
返回值 | 函数名 | 参数 | 作用 |
HAL_StatusTypeDef | HAL_TIM_IC_Init | TIM_HandleTypeDef *htim | 输入捕获初始化 |
HAL_StatusTypeDef | HAL_TIM_IC_DeInit | TIM_HandleTypeDef *htim | 引脚初始化之后的引脚恢复成默认的状态 |
无 | HAL_TIM_IC_MspInit | TIM_HandleTypeDef *htim | |
无 | HAL_TIM_IC_MspDeInit | TIM_HandleTypeDef *htim | |
HAL_StatusTypeDef | HAL_TIM_IC_Start | TIM_HandleTypeDef *htim, uint32_t Channel |
|
HAL_StatusTypeDef | HAL_TIM_IC_Stop | TIM_HandleTypeDef *htim, uint32_t Channel |
|
HAL_StatusTypeDef | HAL_TIM_IC_Start_IT | TIM_HandleTypeDef *htim, uint32_t Channel |
启动中断 |
HAL_StatusTypeDef | HAL_TIM_IC_Stop_IT | TIM_HandleTypeDef *htim, uint32_t Channel |
关闭中断 |
HAL_StatusTypeDef | HAL_TIM_IC_Start_DMA | TIM_HandleTypeDef *htim, uint32_t Channel, uint32_t *pData, uint16_t Length |
|
HAL_StatusTypeDef | HAL_TIM_IC_Stop_DMA | TIM_HandleTypeDef *htim, uint32_t Channel |
单脉冲模式:
/* Timer One Pulse functions ***************************************************/
返回值 | 函数名 | 参数 | 作用 |
HAL_StatusTypeDef | HAL_TIM_OnePulse_Init | TIM_HandleTypeDef *htim, TIM_Encoder_InitTypeDef *sConfig | 单脉冲初始化 |
HAL_StatusTypeDef | HAL_TIM_OnePulse_DeInit | TIM_HandleTypeDef *htim | 引脚初始化之后的引脚恢复成默认的状态 |
无 | HAL_TIM_OnePulse_MspInit | TIM_HandleTypeDef *htim | |
无 | HAL_TIM_OnePulse_MspDeInit | TIM_HandleTypeDef *htim | |
HAL_StatusTypeDef | HAL_TIM_OnePulse_Start | TIM_HandleTypeDef*htim, uint32_t OutputChannel |
|
HAL_StatusTypeDef | HAL_TIM_OnePulse_Stop | TIM_HandleTypeDef*htim, uint32_t OutputChannel |
|
HAL_StatusTypeDef | HAL_TIM_OnePulse_Start_IT | TIM_HandleTypeDef*htim, uint32_t OutputChannel |
启动中断 |
HAL_StatusTypeDef | HAL_TIM_OnePulse_Stop_IT | TIM_HandleTypeDef*htim, uint32_t OutputChannel |
关闭中断 |
编码器模式
/* Timer Encoder functions *****************************************************/
返回值 | 函数名 | 作用 |
HAL_StatusTypeDef | HAL_TIM_Encoder_Init | |
HAL_StatusTypeDef | HAL_TIM_Encoder_DeInit | 引脚初始化之后的引脚恢复成默认的状态 |
无 | HAL_TIM_Encoder_MspInit | |
无 | HAL_TIM_Encoder_MspDeInit | |
HAL_StatusTypeDef | HAL_TIM_Encoder_Start | |
HAL_StatusTypeDef | HAL_TIM_Encoder_Stop | |
HAL_StatusTypeDef | HAL_TIM_Encoder_Start_IT | 启动中断 |
HAL_StatusTypeDef | HAL_TIM_Encoder_Stop_IT | 关闭中断 |
HAL_StatusTypeDef | HAL_TIM_Encoder_Start_DMA | |
HAL_StatusTypeDef | HAL_TIM_Encoder_Stop_DMA |
控制函数
/* Control functions *********************************************************/、
返回值 | 函数名 | 作用 |
HAL_StatusTypeDef | HAL_TIM_OC_ConfigChannel | |
HAL_StatusTypeDef | HAL_TIM_PWM_ConfigChannel | |
HAL_StatusTypeDef | HAL_TIM_IC_ConfigChannel | |
HAL_StatusTypeDef | HAL_TIM_OnePulse_ConfigChannel | |
HAL_StatusTypeDef | HAL_TIM_ConfigOCrefClear | |
HAL_StatusTypeDef | HAL_TIM_ConfigClockSource | |
HAL_StatusTypeDef | HAL_TIM_ConfigTI1Input | |
HAL_StatusTypeDef | HAL_TIM_SlaveConfigSynchro | |
HAL_StatusTypeDef | HAL_TIM_SlaveConfigSynchro_IT | |
HAL_StatusTypeDef | HAL_TIM_DMABurst_WriteStart | |
HAL_StatusTypeDef | HAL_TIM_DMABurst_MultiWriteStart | |
HAL_StatusTypeDef | HAL_TIM_DMABurst_WriteStop | |
HAL_StatusTypeDef | HAL_TIM_DMABurst_ReadStart | |
HAL_StatusTypeDef | HAL_TIM_DMABurst_MultiReadStart | |
HAL_StatusTypeDef | HAL_TIM_DMABurst_ReadStop | |
HAL_StatusTypeDef | HAL_TIM_GenerateEvent | |
uint32_t | HAL_TIM_ReadCapturedValue |
回调函数:
/* Callback in non blocking modes (Interrupt and DMA) *************************/
返回值 | 函数名 | 作用 |
无 | HAL_TIM_PeriodElapsedCallback | |
无 | HAL_TIM_PeriodElapsedHalfCpltCallback | |
无 | HAL_TIM_OC_DelayElapsedCallback | |
无 | HAL_TIM_IC_CaptureCallback | |
无 | HAL_TIM_IC_CaptureHalfCpltCallback | |
无 | HAL_TIM_PWM_PulseFinishedCallback | |
无 | HAL_TIM_PWM_PulseFinishedHalfCpltCallback | |
无 | HAL_TIM_TriggerCallback | |
无 | HAL_TIM_TriggerHalfCpltCallback | |
无 | HAL_TIM_ErrorCallback |
状态函数
/* Peripheral State functions 获取结构体State里面的各种状态**************************************************/
返回值 | 函数名 | 作用 |
HAL_TIM_StateTypeDef | HAL_TIM_Base_GetState | |
HAL_TIM_StateTypeDef | HAL_TIM_OC_GetState | |
HAL_TIM_StateTypeDef | HAL_TIM_PWM_GetState | |
HAL_TIM_StateTypeDef | HAL_TIM_IC_GetState | |
HAL_TIM_StateTypeDef | HAL_TIM_OnePulse_GetState | |
HAL_TIM_StateTypeDef | HAL_TIM_Encoder_GetState |
通道状态函数
/* Peripheral Channel state functions ************************************************/
返回值 | 函数名 | 作用 |
HAL_TIM_ActiveChannel | HAL_TIM_GetActiveChannel | |
HAL_TIM_ChannelStateTypeDef | HAL_TIM_GetChannelState | |
HAL_TIM_DMABurstStateTypeDef | HAL_TIM_DMABurstState |