4. 所以我们将其移植到 STM32F4 上:
a. 替换 STM32F0HAL 为 STM32F4HAL
b. 修改工程器件相关的配置.
c. 去掉与 STM32F4 HIS 校准无关的文件,只保留 his.c/h
d. 修改 main.c 的主程序,初始化校准前频率测试校准后频率测试.
HSIFrequencyBeforeCalib 为校准前的频率值,可以在 IAR 的 Watch 窗口查看.
HSIFrequencyAfterCalib 为校准后的频率值,可以在 IAR 的 Watch 窗口查看.
e. 定义使用 USE_REFERENCE_LSE 和__HSI2LSECALIBRATE_TEST__,使能使用
LSE 校准 HIS 功能函数.
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
#ifdef USE_REFERENCE_LSE
#define HSI_TIMx_COUNTER_PRESCALER ((uint32_t)0)
/* The signal in input capture is divided by 8 */
#define HSI_TIMx_IC_DIVIDER TIM_ICPSC_DIV8
/* The LSE is divided by 8 => LSE/8 = 32768/8 = 4096 */
#define REFERENCE_FREQUENCY ((uint32_t) 4096) /* The reference frequency
value in Hz */
/* Number of measurements in the loop */
#define HSI_NUMBER_OF_LOOPS ((uint32_t)50)
/* Connect LSE clock (through MCO) to TIMx Input Capture 1 */
#ifdef __HSI2LSECALIBRATE_TEST__
#define HSI_Timer_ConnectInput() do { \
HAL_TIMEx_RemapConfig(&TimHandle, TIM_TIM5_LSE); \
} while(0)
#else