#include "xinc_m0.h" #define u32 uint32_t extern void ble_tick_handler(void); volatile unsigned int GulSystickCount=0; void SysTick_Handler(void) { ble_tick_handler();//mainloop超时计数函数 GulSystickCount++;//计数一次10ms } //延时nus //nus:要延时的us数. //nus:0~204522252(最大值即(2^32)/32) void delay_us(u32 nus) { u32 ticks; u32 told,tnow,tcnt=0; u32 reload=SysTick->LOAD; //LOAD的值 ticks=nus*32; //需要的节拍数 32M速度 1us需要32个时钟周期 told=SysTick->VAL; //刚进入时的计数器值 while(1) { tnow=SysTick->VAL; if(tnow!=told) { if(tnow=ticks)break; //时间超过/等于要延迟的时间,则退出. } }; } void delay_ms(u32 nms) { for(uint32_t i=0;i