这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 嵌入式开发 » MCU » stm32精确延时

共1条 1/1 1 跳转至

stm32精确延时

工程师
2014-09-28 19:43:04     打赏
void Delay_ms( u16 nms )
{
 SysTick->LOAD = ( u32 )nms*4000;   //重装数值 
 SysTick->VAL &= 0x00;                //清零
 SysTick->CTRL|= 0x01;                //使能SysTick 计数开始
 while( !(SysTick->CTRL&( 1<<16 ) ) ); //等待计数完成
 SysTick->CTRL &= 0x00;       //关闭计数器
 SysTick->VAL  &= 0x00;     //清零
}

void Delay_us( u32 nus )
{
 SysTick->LOAD = ( u32 )nus*4;     //重装数值
 SysTick->VAL &= 0x00;                  //清零
 SysTick->CTRL|= 0x01;                  //使能SysTick 计数开始
 while( !( SysTick->CTRL &( 1<<16 ) )); //等待计数完成
 SysTick->CTRL&= 0x00;             //关闭计数器
 SysTick->VAL &= 0x00;                  //清零
}

 



共1条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]