| void delay_init(u8 SYSCLK) {
 #if SYSTEM_SUPPORT_OS                                                 //Èç¹ûÐèÒªÖ§³ÖOS.
 u32 reload;
 #endif
 SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK_Div8);
 fac_us=SYSCLK/8;                                                //²»ÂÛÊÇ·ñʹÓÃOS,fac_us¶¼ÐèҪʹÓÃ
 #if SYSTEM_SUPPORT_OS                                                 //Èç¹ûÐèÒªÖ§³ÖOS.
 reload=SYSCLK/8;                                                //ÿÃëÖӵļÆÊý´ÎÊý µ¥Î»ÎªM
 reload*=1000000/delay_ostickspersec;        //¸ù¾Ýdelay_ostickspersecÉ趨Òç³öʱ¼ä
 //reloadΪ24λ¼Ä´æÆ÷,×î´óÖµ:16777216,ÔÚ168MÏÂ,Ô¼ºÏ0.7989s×óÓÒ
 fac_ms=1000/delay_ostickspersec;                //´ú±íOS¿ÉÒÔÑÓʱµÄ×îÉÙµ¥Î»
 SysTick->CTRL|=SysTick_CTRL_TICKINT_Msk;           //¿ªÆôSYSTICKÖжÏ
 SysTick->LOAD=reload;                                         //ÿ1/delay_ostickspersecÃëÖжÏÒ»´Î
 SysTick->CTRL|=SysTick_CTRL_ENABLE_Msk;         //¿ªÆôSYSTICK
 #else
 fac_ms=(u16)fac_us*1000;                                //·ÇOSÏÂ,´ú±íÿ¸ömsÐèÒªµÄsystickʱÖÓÊý
 #endif
 }
 |