标题: STM32F103单片机从72MHZ降低到24MHZ延时函数也要改么? [打印本页]

作者: 菜鸟机器    时间: 2022-7-9 14:00
标题: STM32F103单片机从72MHZ降低到24MHZ延时函数也要改么?
如何修改?调整t值大小就行了吗?

1.png (5.45 KB, 下载次数: 44)

1.png

作者: Hephaestus    时间: 2022-7-9 15:13
可以调整t的大小,但是注意并不是按比例缩放,STM32在72MHz有2个flash latency,在24MHz没有。
作者: 菜鸟机器    时间: 2022-7-9 19:17
Hephaestus 发表于 2022-7-9 15:13
可以调整t的大小,但是注意并不是按比例缩放,STM32在72MHz有2个flash latency,在24MHz没有。

t怎么调整?
作者: Hephaestus    时间: 2022-7-9 19:39
菜鸟机器 发表于 2022-7-9 19:17
t怎么调整?

你自己试试呗,延迟后翻转IO口,用示波器频率计测试。μs级别的延迟这么写还可以,也没有别的方便的方法,如果是ms级的延迟还这么些就显得太蠢了,用systick。
作者: Y_G_G    时间: 2022-7-10 00:01
有systick为什么还要这种延时代码呢?
作者: 624353765    时间: 2022-7-10 06:47
所以要少用delay函数
作者: zlc558    时间: 2022-7-10 16:33
可以修改为使用定时器中断
作者: 菜鸟机器    时间: 2022-7-10 19:50
Y_G_G 发表于 2022-7-10 00:01
有systick为什么还要这种延时代码呢?

是啊,感觉很不标准。
作者: 菜鸟机器    时间: 2022-7-10 19:50
qq624353765 发表于 2022-7-10 06:47
所以要少用delay函数

非本人写的,我也不知道原作者用意。
作者: 菜鸟机器    时间: 2022-7-10 19:51
zlc558 发表于 2022-7-10 16:33
可以修改为使用定时器中断

这样能用么?会不会对原来程序有影响~
作者: Y_G_G    时间: 2022-7-10 23:05
菜鸟机器 发表于 2022-7-10 19:50
是啊,感觉很不标准。

这种延时估计大多就是那种要求不高的,比如有的SPI没那么快,就有一个做做样子就行的,比如只要延时1uS
那这代码就随便一写就行,反正大于1uS就行,在SPI只作为器件控制而已,不作为大数据传送的时候,这种延时对整个程序影响又不大
作者: 菜鸟机器    时间: 2022-7-11 04:15
Y_G_G 发表于 2022-7-10 23:05
这种延时估计大多就是那种要求不高的,比如有的SPI没那么快,就有一个做做样子就行的,比如只要延时1uS
那 ...

原来如此。没错就是SPI通讯延时。
作者: 黄youhui    时间: 2022-7-11 10:47
菜鸟机器 发表于 2022-7-9 19:17
t怎么调整?

你都用103了,还用这种傻瓜式延时。随便抄一个滴答定时器也行啊
作者: 菜鸟机器    时间: 2022-7-11 11:38
黄youhui 发表于 2022-7-11 10:47
你都用103了,还用这种傻瓜式延时。随便抄一个滴答定时器也行啊

非本人写的,我也不知道原作者用意。所以没乱改。
作者: caoxinri123    时间: 2022-7-11 16:17
用循环延时,正确的做法是,先按照大概的指令时间,然后再用示波器微调
作者: 菜鸟机器    时间: 2022-7-11 19:30
caoxinri123 发表于 2022-7-11 16:17
用循环延时,正确的做法是,先按照大概的指令时间,然后再用示波器微调

为什么要改为循环延时呢?不能调整t值吗?
作者: Y_G_G    时间: 2022-7-11 20:56
菜鸟机器 发表于 2022-7-11 04:15
原来如此。没错就是SPI通讯延时。

你自己掌握好这其中的灵活性和原理就行了,没有必要纠结那么多
每个SPI器件的通讯速度都是不一样的,有的快有的慢,快的有100多MHZ的,比单片机的72MHZ还快,像这种压根就不需要算是
有的却只有几MHZ,这种情况就得加延时了
为了方便的代码的移植,你可以用滴答时钟做一个延时,使用的时候,根据你所用的SPI器件和单片机的时钟来调整就行
像这种while的延时就别在STM32上折腾了,还什么示波器来看,还改代码的,这是开始入门学单片机的代码,知道延时的原理就行了
滴答时钟直接就完事了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1