//粗延时函数,微秒
- void delay_nus(u16 time)
- {
- u16 i=0;
- while(time--)
- {
- i=10; //自己定义
- while(i--) ;
- }
- }
//毫秒级的延时
- void delay_nms(u16 time)
- {
- u16 i=0;
- while(time--)
- {
- i=12000; //自己定义
- while(i--) ;
- }
- }
运用SysTick来实现准确定时:
- SysTick_Config(SystemCoreClock / 10) 函数的形参就是systick重装定时器的值。
- systick计数频率为每秒72000000次,所以7200000次就是1/10秒,也就是100ms。
- SysTick是1个24bit递减计数器,通过对SysTick控制与状态寄存器的设置