首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >STM32L476 on Nucleo,不能在80 Mhz下运行

STM32L476 on Nucleo,不能在80 Mhz下运行
EN

Stack Overflow用户
提问于 2020-05-25 11:55:28
回答 1查看 212关注 0票数 0

我正在为我的Nucleo-L476RG板在一个新的项目上运行以下代码:

代码语言:javascript
复制
GPIOA->BSRR = GPIO_PIN_4;
GPIOA->BRR = GPIO_PIN_4;

时钟配置是默认的,如下所示:

我希望在示波器上看到一个80兆赫的时钟,但我只看到10兆赫。当我启用“主时钟输出”时,我可以看到80 Mhz,但我的代码似乎没有以这个速度运行。

知道是什么导致的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-25 12:29:06

,我希望在我的示波器上看到一个80兆赫的时钟,但我只看到10兆赫。

为什么您期望这两个C状态将在一个CPU时钟中执行?你认为有可能吗?,当然不是

它被翻译成

代码语言:javascript
复制
  str r2, [r3]
  str r2, [r3, #4]

str指令需要2个时钟。其中两只,四只钟。如果从闪存运行,则需要添加等待状态。这大约需要8个时钟,你可以看到10兆赫。您可以尝试从SRAM中运行,这样会更快。

当然,只有当你一个接一个地得到这些指示时,它才是有效的。

代码语言:javascript
复制
GPIOA->BSRR = GPIO_PIN_4;
GPIOA->BRR = GPIO_PIN_4;
GPIOA->BSRR = GPIO_PIN_4;
GPIOA->BRR = GPIO_PIN_4;
GPIOA->BSRR = GPIO_PIN_4;
GPIOA->BRR = GPIO_PIN_4;
GPIOA->BSRR = GPIO_PIN_4;
GPIOA->BRR = GPIO_PIN_4;
GPIOA->BSRR = GPIO_PIN_4;
GPIOA->BRR = GPIO_PIN_4;
/*...*/

当循环中有它时,循环将增加额外的开销。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62001933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档