【32单片机学习】(7)STM32时钟周期

本文探讨了STM32与C51在执行I2C通信时关于时钟周期的差异。STM32在SCL翻转后需要额外的等待时间,而C51则不需要。作者通过理论计算,分析了STM32在72MHz系统时钟下执行_nop_()指令的时间,理论值为0.01389us,而官方设计标准约为0.0111us。文章还讨论了时钟周期在验证系统时钟配置正确性上的应用。
摘要由CSDN通过智能技术生成

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

目录

前言

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.时钟周期的应用

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值