当本菜鸟开始接触STM32的时候还是看了原子哥的寄存器教程才跳坑的。
现在ST已经把HAL库推向了主流,但是令我不解的是,HAL那么强大,居然没有一个微秒级别的延时函数?!
黑人问号脸。
好了,废话不多,直接上代码。
#include "delay_us.h"
/*****************************************************************
* 基于STM32F0 HAL的微秒延时函数
* @功能:实现US级延时
* @注意:精准延时范围:2~999US
*2019-07-03Designed By XiaoYang https://www.pypyn.com
******************************************************************/
uint32_t CFG_VAL = 0;
void HAL_Delay_US(__IO uint32_t Delay)
{
if(Delay < MAX_Delay_CNT && Delay > 1)
{
uint32_t wait = SysTick->LOAD - ((Delay - 1) * CFG_VAL);
//CFG_VAL =HAL_RCC_GetHCLKFreq()/1000U/1000U))
//计算出等待1US需要的计数器值
SysTick->V