#include "timing_delay.h" void delay_init(void) { CLK_DeInit(); CLK_LSICmd(ENABLE); CLK_HSICmd(ENABLE); while(SET != CLK_GetFlagStatus(CLK_FLAG_HSIRDY)); CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1); CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1); //HSI = 16M (1·ÖƵ) TIM4_TimeBaseInit(TIM4_PRESCALER_2, 79); TIM4_ClearFlag(TIM4_FLAG_UPDATE); } void TIMDelay_N10us(uint16_t Times) { TIM4_Cmd(ENABLE); //Æô¶¯¶¨Ê±Æ÷ while(Times--) { while(RESET == TIM4_GetFlagStatus(TIM4_FLAG_UPDATE)); TIM4_ClearFlag(TIM4_FLAG_UPDATE); } TIM4_Cmd(DISABLE); //¹Ø±Õ¶¨Ê±Æ÷ } void TIMDelay_Nms(uint16_t Times) { while(Times--) { TIMDelay_N10us(100); } } void TIMDelay_Ns(uint16_t Times) { while(Times--) { TIMDelay_Nms(1000); } }