请问stm32中设置的系统时钟和delay延迟有什么关系?

2019-07-14 14:56发布

delay延迟是根据单片机的晶振进行的计算,然后通过抢占CPU的时间进行的延迟
系统时钟又是根据CPU频率怎样进行的时间计算?
这个程序把两者结合起来的意义在哪里?
可能我的表述有点问题,就是不太懂系统时钟怎么用,为什么要这样用。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
10条回答
60user36
2019-07-14 22:50
本帖最后由 stm1024 于 2018-6-8 08:27 编辑

首先,指令的周期是确定的。然后主频越高的情况下,相同时间内的周期数就越多,能执行的指令就越多。因此,简单地说,同样的代码,系统主频越高,执行时间就越短,所以延迟也不一样。
你把你代码中,RCC_PLLMul_9换小试试,可以发现你的GPIO切换时间延长了。

像上面这种delay,延时间不精确,也不好计算,推荐使用SysTick,纯粹基于晶振频率。

然后我觉得你这里使用“抢占”很容易让人误以为是中断抢占……

一周热门 更多>