函数:
void bsp_StartLPTIM(void)
{
/*
ARR是自动重装寄存器,对应函数HAL_LPTIM_TimeOut_Start_IT的第2个参数
Compare是比较寄存器,对应函数HAL_LPTIM_TimeOut_Start_IT的第3个参数
---------------------
LSE = 32768Hz
分频设置为LPTIM_PRESCALER_DIV8,即8分频(函数bsp_InitLPTIM里面做的初始化配置)
ARR自动重载寄存器 = 32768
实际测试发现溢出中断与ARR寄存器无关,全部由第3个参数,Compare寄存器决定
LPTIM的计数器计数1次的时间是 1 / (32768 / 8) = 8 /32768。
第三个参数配置的是32767,那么计数到32767就是 (32767 + 1)*(8 /32768) = 8秒,计算的时候要加1。
*/
if (HAL_LPTIM_TimeOut_Start_IT(&LptimHandle, 0, 32767) != HAL_OK)
{
Error_Handler(__FILE__, __LINE__);
}
} |