STM32——CubeMX_LL库实现微秒级延时

采用正点原子的例程里面的方法实现微秒级延时

void  LL_uDelay(uint16_t us)
{	
	uint32_t temp;	    	 
	SysTick->LOAD=us*(72000000/8000000); 					//时间加载	  		 
	SysTick->VAL=0x00;        					//清空计数器
	SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ;	//开始倒数	  
	do
	{
		temp=SysTick->CTRL;
	}while((temp&0x01)&&!(temp&(1<<16)));		//等待时间到达   
	SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk;	//关闭计数器
	SysTick->VAL =0X00;      					 //清空计数器	 
}

在这里插入图片描述
执行LL_uDelay(10);实际延时13us
在这里插入图片描述
执行LL_uDelay(100);实际延时94us
在这里插入图片描述
执行LL_uDelay(1000);实际延时904us
在这里插入图片描述
执行LL_uDelay(5000);实际延时4504us
在这里插入图片描述

posted @ 2020-07-24 18:01  火红色祥云  阅读(231)  评论(0编辑  收藏  举报