SYSTICK当然可以做1us延时
void delay_us(u32 nus) { u32 temp; SysTick->LOAD=nus*fac_us; // fac_us=SystemCoreClock/8000000; SysTick->VAL=0x00; SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk ; do { temp=SysTick->CTRL; }while((temp&0x01)&&!(temp&(1<<16))); SysTick->CTRL&=~SysTick_CTRL_ENABLE_Msk; SysTick->VAL =0X00; }
虽然执行语句也有时间,但是f1主频有72MHz,所以对于1us可以忽略了