设置学习STM32:时钟周期设置

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

前言

1.理论时间

2.官方设计标准时间

3.时钟周期的应用


前言

        在学习stm32的I2C部分时,发现和C51的有所不同,stm32在SCL翻转IO口后要一定的等待时间, 而51的代码中没有这一延时,后面了解到是51执行代码的速度比较慢,不需要延时就能满足I2C的通信条件,所以STM32执行一条单指令代码的时间到底是多少呢。 


1.理论时间

指令周期 :CPU从内存取出一条指令并执行这条指令的时间总和。

CPU周期 :又称机器周期,CPU访问一次内存所花的时间较长,因此用从内存读取一条指令字的最短时间来定义。

时钟周期: 通常称为节拍脉冲或T周期。一个CPU周期包含若干个时钟周期。

根据以前C51计算时钟周期的方法,当STM32系统时钟为72MHZ时:

执行(_nop_();)指令理论上需要的时间为1/72Mhz=0.01389us

2.官方设计标准时间

stm32 属于ARM CortexM3,多数指令是单周期的。

cortex-m3是三级流水线,同时执行3条指令,指令周期不定,分支指令也可能清空流水线,导致预先执行的指令失效。

ARM官方的数字是1.25MIPS/MHz,我的理解就是每个周期平均执行1.25条指令。

即官方设计该内核下执行_nop_();指令需要的时间为1/(72*1.25)MHZ=0.0111us

3.时钟周期的应用

可以通过执行单指令周期的时间去检验配置的系统时钟是否正确

物联沃分享整理
物联沃-IOTWORD物联网 » 设置学习STM32:时钟周期设置

发表评论