1、HRTIM的API主要分为两类,Simple mode和waveform mode
(1)Simple mode
与通用定时器的相同,只是分辨率更高,支持的模式如下:
a、输出比较模式
b、PWM输出模式
c、输入捕获模式
d、单脉冲模式
函数以HAL_HRTIM_Simple开头。
(2)Waveform mode
这个模式下的API可以充分发挥HRTIM的所有特性。
所有功能都可以使用,而且没有任何限制。
函数以HAL_HRTIM_Waveform开头。
2、HRTIM的底层初始化是通过函数HAL_HRTIM_MspInit实现
(1)函数__HRTIMx_CLK_ENABLE()使能时钟
(2)初始化使用了的IO引脚,__HAL_RCC_GPIOx_CLK_ENABLE和HAL_GPIO_Init
(3)使用DMA方式控制数据传输,比如HAL_HRTIM_SimpleBaseStart_DMA
a、使能DMA接口时钟__DMAx_CLK_ENABLE
b、初始化DMA句柄
c、调用函数__HAL_LINKDMA关联DMA和HRTIM句柄。
d、调用函数HAL_DMA_Init初始化DMA
e、HAL_NVIC_SetPriority配置DMA优先级,HAL_NVIC_EnableIRQ使能DMA中断
(4)使用中断方式控制数据传输,比如HAL_HRTIM_SimpleBaseStart_IT
HAL_NVIC_SetPriority配置DMA优先级,HAL_NVIC_EnableIRQ使能DMA中断
3、初始化HRTIM使用函数HAL_HRTIM_Init。此函数除了配置HRTIM句柄的接头成员,还包括外部同步配置,HRTIM既可以作为master发出同步信号,也可以作为slave,等待接收同步信号。
4、配置HRTIM
(1)Burst Mode Controller:
HAL_HRTIM_BurstModeConfig突发模式配置
(2)External Events Conditioning
HAL_HRTIM_EventConfig 配置外部事件条件
HAL_HRTIM_EventPrescalerConfig 配置外部事件采样时钟
(3)Fault Conditioning
HAL_HRTIM_FaultConfig 配置异常通道
HAL_HRTIM_FaultPrescalerConfig 预分频配置
HAL_HRTIM_FaultModeCtl 使能或者禁止输入电路
(4)ADC trigger
HAL_HRTIM_ADCTriggerConfig 配置触发ADC
5、配置HRTIM时基
使用函数HAL_HRTIM_TimeBaseConfig配置定时器时间基准,不管用于Simple Mode还是Waveform Mode,都必须调用这个函数进行配置。
(1)HRTIM定时器计数操作模式
(2)HRTIM定时器时钟分频
(3)HRTIM定时器周期。
(4)HRTIM重复计数器。
6、HRTIM工作在Simple Mode
(1)时间基准模式:
HAL_HRTIM_SimpleBaseStart(),HAL_HRTIM_SimpleBaseStop(),
HAL_HRTIM_SimpleBaseStart_IT(),HAL_HRTIM_SimpleBaseStop_IT(),
HAL_HRTIM_SimpleBaseStart_DMA(),HAL_HRTIM_SimpleBaseStop_DMA()
(2)输出比较:
HAL_HRTIM_SimpleOCChannelConfig(),
HAL_HRTIM_SimpleOCStart(),HAL_HRTIM_SimpleOCStop(),
HAL_HRTIM_SimpleOCStart_IT(),HAL_HRTIM_SimpleOCStop_IT(),
HAL_HRTIM_SimpleOCStart_DMA(),HAL_HRTIM_SimpleOCStop_DMA(),
(3)PWM输出:
HAL_HRTIM_SimplePWMChannelConfig(),
HAL_HRTIM_SimplePWMStart(),HAL_HRTIM_SimplePWMStop(),
HAL_HRTIM_SimplePWMStart_IT(),HAL_HRTIM_SimplePWMStop_IT(),
HAL_HRTIM_SimplePWMStart_DMA(),HAL_HRTIM_SimplePWMStop_DMA()
(4)输入捕获
HAL_HRTIM_SimpleCaptureChannelConfig(),
HAL_HRTIM_SimpleCaptureStart(),HAL_HRTIM_SimpleCaptureStop(),
HAL_HRTIM_SimpleCaptureStart_IT(),HAL_HRTIM_SimpleCaptureStop_IT()
(5)单脉冲模式:
HAL_HRTIM_SimpleOnePulseChannelConfig(),
HAL_HRTIM_SimpleOnePulseStart(),HAL_HRTIM_SimpleOnePulseStop(),
HAL_HRTIM_SimpleOnePulseStart_IT(),HAL_HRTIM_SimpleOnePulseStop_It()
7、HRTIM工作在waveform模式
(1)HAL_HRTIM_WaveformTimerConfig使能HRTIM中断和DMA请求
使能HRTIM的HALF Mode
定义HRTIM如何响应外部同步输入
使能HRTIM的推挽模式
使能HRTIM的异常通道
使能dead-time插入
设置HRTIM的延迟保护
设置HRTIM的更新和复位触发
设置HRTIM寄存器的更新策略
(2)HAL_HRTIM_TimerEventFilteringConfig
配置外部事件消隐和开窗电路。
Blanking:在规定的时间内屏蔽外部事件。
Windowing:只能在规定的时间内使能外部事件。
(3)HAL_HRTIM_DeadTimeConfig
配置HRTIM的死区插入,用于配置互补信号
(4)HAL_HRTIM_ChopperModeConfig
用于配置在定时之上添加的高频载波信号输出,HRTIM的每个输出都可以单独使能或者禁止 Chopper。
(5)HAL_HRTIM_BurstDMAConfig
配置HRTIM的DMA突发模式。
(6)HAL_HRTIM_WaveformCompareConfig
配置HRTIM的比较单元
(7)HAL_HRTIM_WaveformCaptureConfig
配置HRTIM的捕获单元
(8)HAL_HRTIM_WaveformOutputConfig
配置HRTIM输出。
(9)HAL_HRTIM_WaveformSetOutputLevel
配置激活或者非激活态。
(10) 使能或者禁止waveform timer输出
HAL_HRTIM_WaveformOutputStart(),HAL_HRTIM_WaveformOutputStop().
(11)启动或者禁止HRTIM
HAL_HRTIM_WaveformCountStart(), HAL_HRTIM_WaveformCountStop(),
HAL_HRTIM_WaveformCountStart_IT(), HAL_HRTIM_WaveformCountStop_IT(),
HAL_HRTIM_WaveformCountStart_DMA(), HAL_HRTIM_WaveformCountStop_DMA(),
(11) 突发模式控制器使能:
HAL_HRTIM_BurstModeCtl()
(12) 软件触发 :
HAL_HRTIM_BurstModeSoftwareTrigger()
HAL_HRTIM_SoftwareCapture()
HAL_HRTIM_SoftwareUpdate()
HAL_HRTIM_SoftwareReset()
8、动态注册回调
使能宏定义USE_HAL_HRTIM_REGISTER_CALLBACKS
函数HAL_HRTIM_RegisterCallback() 允许注册的回调如下:
(+) Fault1Callback : Fault 1 interrupt callback function
(+) Fault2Callback : Fault 2 interrupt callback function
(+) Fault3Callback : Fault 3 interrupt callback function
(+) Fault4Callback : Fault 4 interrupt callback function
(+) Fault5Callback : Fault 5 interrupt callback function
(+) SystemFaultCallback : System fault interrupt callback function
(+) BurstModePeriodCallback : Burst mode period interrupt callback function
(+) SynchronizationEventCallback : Sync Input interrupt callback function
(+) ErrorCallback : DMA error callback function
(+) MspInitCallback : HRTIM MspInit callback function
(+) MspDeInitCallback : HRTIM MspInit callback function
函数HAL_HRTIM_TIMxRegisterCallback允许注册的回调函数如下:
(+) RegistersUpdateCallback : Timer x Update interrupt callback function
(+) RepetitionEventCallback : Timer x Repetition interrupt callback function
(+) Compare1EventCallback : Timer x Compare 1 match interrupt callback function
(+) Compare2EventCallback : Timer x Compare 2 match interrupt callback function
(+) Compare3EventCallback : Timer x Compare 3 match interrupt callback function
(+) Compare4EventCallback : Timer x Compare 4 match interrupt callback function
(+) Capture1EventCallback : Timer x Capture 1 interrupts callback function
(+) Capture2EventCallback : Timer x Capture 2 interrupts callback function
(+) DelayedProtectionCallback : Timer x Delayed protection interrupt callback function
(+) CounterResetCallback : Timer x counter reset/roll-over interrupt callback function
(+) Output1SetCallback : Timer x output 1 set interrupt callback function
(+) Output1ResetCallback : Timer x output 1 reset interrupt callback function
(+) Output2SetCallback : Timer x output 2 set interrupt callback function
(+) Output2ResetCallback : Timer x output 2 reset interrupt callback function
(+) BurstDMATransferCallback : Timer x Burst DMA completed interrupt callback function
(1)卸载注册使用HAL_HRTIM_UnRegisterCallback和HAL_HRTIM_TIMxUnRegisterCallback
(2)默认情况下,HAL_HRTIM_Init调用后将使用默认的弱定义回调,如果用户注册了 回调,将使用用户设置的。
(3)Callbacks can be registered/unregistered in HAL_HRTIM_STATE_READY state only.
Exception done MspInit/MspDeInit functions that can be registered/unregistered
in HAL_HRTIM_STATE_READY or HAL_HRTIM_STATE_RESET states, thus registered
(user) MspInit/DeInit callbacks can be used during the Init/DeInit.
Then, the user first registers the MspInit/MspDeInit user callbacks
using HAL_HRTIM_RegisterCallback() before calling HAL_HRTIM_DeInit()
or HAL_HRTIM_Init() function. |