keil_延时函数

在keil中使用延时函数
方法1:看CPU主频,通过每条汇编指令运行1个频率来进行计算:
比如i++是3条指令
1、从内存中把i的值取出来放到CPU的寄存器中
2、CPU寄存器的值+1
3、把CPU寄存器的值写回内存
通过循环执行指令来进行延时。

方法2:使用系统滴答定时器,代码如下:

#define delay_ms(x)   SysTick->LOAD = (SystemCoreClock / 1000) * x;  /*延时x ms*/           \
                      SysTick->VAL = 0;                                      \
                      SysTick->CTRL = 5;                                      \
                      while(!(SysTick->CTRL & 0x10000));                     \
                      SysTick->CTRL = 0;  

滴答定时器本质也是一个定时器中断。
相关的配置:它有四个寄存器:

  • SysTick->CTRL, --控制和状态寄存器
  • SysTick->LOAD, --重装载寄存器
  • SysTick->VAL, --当前值寄存器
  • SysTick->CALIB, --校准值寄存器
    其他相关的定时器的介绍可以上网查阅资料。这里只做简单的使用。
    参考连接:https://blog.csdn.net/yx_l128125/article/details/7884423

你可能感兴趣的:(单片机_硬件,keil5)