[STM32F0] 分享一个STM32F072在8M下的软件延时

[复制链接]
 楼主| hjl240 发表于 2015-2-5 19:03 | 显示全部楼层 |阅读模式
    使用定时器产生的延时精度确实是高,但是也相对麻烦,软件延时虽然精度不高,但也相对简单,使用方便,在精度要求不高的情况的可以使用。            使用的是STM32F032 Nucleo开发板,为内部8M晶振。
    以下延时函数用示波器测得,精度小于1us。




  1. //STM32F072RB Nucleo
  2. //在内部晶振为8M的情况下

  3. void delay3us()//3us
  4. {
  5.         int i;
  6.         for(i=0;i<1;i++);
  7. }

  8. void delay10us()//10us
  9. {
  10.         int i;
  11.         for(i=0;i<12;i++);
  12. }

  13. void delay20us()
  14. {
  15.         int i;
  16.         for(i=0;i<28;i++);
  17. }

  18. void delay50us()
  19. {
  20.         int i;
  21.         for(i=0;i<76;i++);
  22. }

  23. void delay200us()
  24. {
  25.         int i;
  26.         for(i=0;i<317;i++);
  27. }

  28. void delay500us()
  29. {
  30.         int i;
  31.         for(i=0;i<796;i++);
  32. }

  33. void delay1ms()
  34. {
  35.         int i;
  36.         for(i=0;i<1590;i++);
  37. }

  38. void delaynms(int n)
  39. {
  40.         int j;
  41.         for(j=0;j<n;j++)
  42.                 delay1ms();
  43. }



您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

56

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部