![](https://csdnimg.cn/release/download_crawler_static/88334942/bg7.jpg)
DocID026506 Rev 1 [English Rev 1] 7/33
AN4539 完成环境的准备
32
1. 为 RCC_CFGR3 寄存器中的 HRTIM 选择高速 PLL 输出:
__HAL_RCC_HRTIM1_CONFIG(RCC_HRTIM1CLK_PLLCLK);
2. 为在 APB2 总线上映射的寄存器进行时钟使能。
__HRTIM1_CLK_ENABLE();
1.4.3 HRTIM DLL 初始化
HRTIM 的延迟锁相环 (DLL)可提供细粒度计时,将高频率 (144 或 128MHz)时钟周期
分为 32 个均匀分布的间隔。
在使用高分辨率前,此 DLL 必须至少校准一次。如果电压或温度条件发生改变,在 HRTIM
操作过程中可透明地重新进行该校准。也可由硬件使能周期校准。
下面的代码段显示如何完成校准。当 DLLRDY 标志被置位后,高分辨率可用。
/* DLL 校准:使能了周期校准,周期设置为 14µs */
HRTIM1->sCommonRegs.DLLCR = HRTIM_CALIBRATIONRATE_14| HRTIM_DLLCR_CALEN;
/* 检查 DLL 校准完成的标志位 */
while(HRTIM1->sCommonRegs.ISR & HRTIM_IT_DLLRDY == RESET);
建议使能周期校准,默认情况下采用最小校准周期 (设为 14µs)。
注: 如果
DLL
未锁定 (通常是由于
HSE
振荡器未正常配置),下面的代码将引起执行延迟。
HAL
库包含一个函数来实现校准,它具有超时验证,如有必要可重定向至差错处理程序。基
于
HAL
的软件示例中使用了此函数。
1.4.4 HRTIM I/O 初始化
HRTIM 输入和输出映射到标准 I/O 端口,必须像其他 I/O 外设一样进行编程。 HRTIM 端口
通道影射为:
• AF13 通道 (面向 HRTIM I/O 端口,位于端口 A 和 B);
• AF3 通道 (面向 HRTIM I/O 端口,位于端口 C);
HRTIM I/O 初始化必须在两个阶段中完成。在 HRTIM 寄存器之前,首先在
HAL_HRTIM_MspInit 函数中初始化 HRTIM 输入。
HRTIM 输出必须在 HRTIM 控制寄存器编程 (示例中它在 GPIO_HRTIM_outputs_Config 函
数中完成)后且当计数器使能时进行初始化。这是为了保证来自 GPIO 电路的控制信号传输
到 HRTIM 定时器之前,在 HRTIM 中能够正确定义输出状态。
1.4.5 其他外设初始化
HRTIM 与多种 MCU 外设交互作用,如下所列。进行 IHRTIM 操作时不强制要求对它们全部
进行初始化。下列外设的初始化代码在后面所述的一些示例中提供。