查询方式的优点:不需要开启中断,不与其他中断需要频繁开启相互冲突!
(实测用串口打印数据的方式查看,精度能达到10ms,可能是串口传输的问题)
#ifndef __delay_H
#define __delay_H
#include “stm32f10x.h”
#define Delay_ms(x) Delay_us(1000*x) //1000乘以x
void Delay_us(__IO uint32_t nTime);
#endif
#include “delay.h”
void Delay_us(__IO uint32_t nTime)
{
SysTick->LOAD =9-1;//72/8=9mzh(1us)
SysTick->VAL = 0;
SysTick->CTRL |= 0x01;
for( ; nTime > 0 ; nTime–)
{
while((SysTick->CTRL&SysTick_CTRL_COUNTFLAG_Msk)==0);
}
SysTick->CTRL =0;
}