如何在微控制器中进行适当的延迟?

问题描述 投票:0回答:1

如何在微控制器内部进行适当的延迟?

我看到很多人使用基本的 for 循环

for(int i = 0; i < 100000; i++){}

作为延迟,但如何在微控制器内部创建适当的延迟? 如果我可以举个例子。假设我要在 STM32 中使用

SysTick
并且我想激活
SysTick
寄存器。那我应该使用哪个寄存器?

我有 STM32F401RE 处理器,这是时钟树。

https://www.st.com/resource/en/reference_manual/rm0368-stm32f401xbc-and-stm32f401xde-advanced-armbased-32bit-mcus-stmicro electronics.pdf

根据第95页

The RCC feeds the external clock of the Cortex System Timer (SysTick) with the AHB clock 
(HCLK) divided by 8. The SysTick can work either with this clock or with the Cortex clock 
(HCLK), configurable in the SysTick control and status register

所以这意味着?如何激活 SysTick?

stm32 delay microcontroller stm32f4 microprocessors
1个回答
0
投票

STM32 不是微控制器,而是 SoC,由各种组件拼接在一起,其中之一是处理器(在您的例子中为 Cortex-M4)。这不是 ST 提供的,而是 ARM 提供的,并且它有一套单独的文档。 SysTick 是处理器的一部分,因此其描述不在您链接的 STM32F4xx 参考手册中,而是在所谓的 STM32 Cortex-M4 编程手册 中(请参阅其中的4.5 SysTick 定时器 (STK) 章);最终,在ARM 的 Cortex-M4 处理器技术参考手册中。

© www.soinside.com 2019 - 2024. All rights reserved.