找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1302|回复: 16
打印 上一主题 下一主题
收起左侧

STM32F103单片机从72MHZ降低到24MHZ延时函数也要改么?

[复制链接]
跳转到指定楼层
楼主
如何修改?调整t值大小就行了吗?

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

1.png
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:883242 发表于 2022-7-9 15:13 | 只看该作者
可以调整t的大小,但是注意并不是按比例缩放,STM32在72MHz有2个flash latency,在24MHz没有。
回复

使用道具 举报

板凳
ID:313601 发表于 2022-7-9 19:17 | 只看该作者
Hephaestus 发表于 2022-7-9 15:13
可以调整t的大小,但是注意并不是按比例缩放,STM32在72MHz有2个flash latency,在24MHz没有。

t怎么调整?
回复

使用道具 举报

地板
ID:883242 发表于 2022-7-9 19:39 | 只看该作者

你自己试试呗,延迟后翻转IO口,用示波器频率计测试。μs级别的延迟这么写还可以,也没有别的方便的方法,如果是ms级的延迟还这么些就显得太蠢了,用systick。
回复

使用道具 举报

5#
ID:401564 发表于 2022-7-10 00:01 | 只看该作者
有systick为什么还要这种延时代码呢?
回复

使用道具 举报

6#
ID:526108 发表于 2022-7-10 06:47 | 只看该作者
所以要少用delay函数
回复

使用道具 举报

7#
ID:1039052 发表于 2022-7-10 16:33 | 只看该作者
可以修改为使用定时器中断
回复

使用道具 举报

8#
ID:313601 发表于 2022-7-10 19:50 | 只看该作者
Y_G_G 发表于 2022-7-10 00:01
有systick为什么还要这种延时代码呢?

是啊,感觉很不标准。
回复

使用道具 举报

9#
ID:313601 发表于 2022-7-10 19:50 | 只看该作者
qq624353765 发表于 2022-7-10 06:47
所以要少用delay函数

非本人写的,我也不知道原作者用意。
回复

使用道具 举报

10#
ID:313601 发表于 2022-7-10 19:51 | 只看该作者
zlc558 发表于 2022-7-10 16:33
可以修改为使用定时器中断

这样能用么?会不会对原来程序有影响~
回复

使用道具 举报

11#
ID:401564 发表于 2022-7-10 23:05 | 只看该作者
菜鸟机器 发表于 2022-7-10 19:50
是啊,感觉很不标准。

这种延时估计大多就是那种要求不高的,比如有的SPI没那么快,就有一个做做样子就行的,比如只要延时1uS
那这代码就随便一写就行,反正大于1uS就行,在SPI只作为器件控制而已,不作为大数据传送的时候,这种延时对整个程序影响又不大
回复

使用道具 举报

12#
ID:313601 发表于 2022-7-11 04:15 | 只看该作者
Y_G_G 发表于 2022-7-10 23:05
这种延时估计大多就是那种要求不高的,比如有的SPI没那么快,就有一个做做样子就行的,比如只要延时1uS
那 ...

原来如此。没错就是SPI通讯延时。
回复

使用道具 举报

13#
ID:592807 发表于 2022-7-11 10:47 | 只看该作者

你都用103了,还用这种傻瓜式延时。随便抄一个滴答定时器也行啊
回复

使用道具 举报

14#
ID:313601 发表于 2022-7-11 11:38 | 只看该作者
黄youhui 发表于 2022-7-11 10:47
你都用103了,还用这种傻瓜式延时。随便抄一个滴答定时器也行啊

非本人写的,我也不知道原作者用意。所以没乱改。
回复

使用道具 举报

15#
ID:1039153 发表于 2022-7-11 16:17 | 只看该作者
用循环延时,正确的做法是,先按照大概的指令时间,然后再用示波器微调
回复

使用道具 举报

16#
ID:313601 发表于 2022-7-11 19:30 | 只看该作者
caoxinri123 发表于 2022-7-11 16:17
用循环延时,正确的做法是,先按照大概的指令时间,然后再用示波器微调

为什么要改为循环延时呢?不能调整t值吗?
回复

使用道具 举报

17#
ID:401564 发表于 2022-7-11 20:56 | 只看该作者
菜鸟机器 发表于 2022-7-11 04:15
原来如此。没错就是SPI通讯延时。

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表