赞
踩
STM32的HAL库确实提供了毫秒级的延时函数,即HAL_Delay()函数。这个函数使用SysTick定时器来实现延时,并且可以配置为微秒级的延时。
//stm32l4xx_hal.c /** * @brief This function provides minimum delay (in milliseconds) based * on variable incremented. * @note In the default implementation , SysTick timer is the source of time base. * It is used to generate interrupts at regular time intervals where uwTick * is incremented. * @note This function is declared as __weak to be overwritten in case of other * implementations in user file. * @param Delay specifies the delay time length, in milliseconds. * @retval None */ __weak void HAL_Delay(uint32_t Delay) { uint32_t tickstart = HAL_GetTick(); uint32_t wait = Delay; /* Add a period to guaranty minimum wait */ if (wait < HAL_MAX_DELAY) { wait += (uint32_t)uwTickFreq; } while ((HAL_GetTick() - tickstart) < wait) { } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。