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; //清零 }