通常实现Delay(N)函数的方法为:
for(i = 0; i <= x; i ++);
x --- 对应于 对应于N 毫秒的循环值
对于STM32系列微处理器来说,执行一条指令只有几十个ns,进行for循环时,要实现N毫秒的x值非常大,而且由于系统频率的宽广,很难计算出延时N毫 秒的精确值。针对STM32微处理器,需要重新设计一个新的方法去实现该功能,以实现在程序中使用Delay(N)。
在网上搜系统时钟,上面这句话比较常见。我想知道,为什么执行指令的时间就不精确,而用系统时钟,计算的时间,就精确呢?
一个指令周期包含多少系统周期,不是固定的么? |