Delay1.h 855 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. #ifndef __DELAY_H_
  2. #define __DELAY_H_
  3. #include <stm32f10x.h>
  4. #if 1
  5. void Dly1us ( unsigned int DelayVal );
  6. void Dly10us ( unsigned int DelayVal );
  7. void Dly100us ( unsigned int DelayVal );
  8. extern unsigned int SystemClockFreq;
  9. #define DLY_PARA_US (SystemClockFreq*1.0/8500000) //延时us参数
  10. #define DLY_CALL_US (8) //调用us耗时,自定义应< DLY_PARA_US(譬如8.47)
  11. #define delayUs(x) { \
  12. unsigned int _dcnt = (DLY_PARA_US*x-DLY_CALL_US); \
  13. while(_dcnt-- > 0); \
  14. }
  15. #define delay_us(us) delayUs(us)
  16. #define delay_ms(ms) delayUs(ms*1000)
  17. //STM32F103CBT6测试结果:
  18. //#define DLY_CALL_US (8) //调用us耗时,自定义
  19. //106.4ms -> 10.6ms -> 1.06ms
  20. //90us-114us -> 16us-19us -> 9us
  21. #else
  22. void delay_init ( u8 SYSCLK );
  23. void delay_ms ( u16 nms );
  24. void delay_us ( u32 nus );
  25. void Delay ( vu32 nCount );
  26. #endif
  27. #endif