[英]STM32L476 on Nucleo, can't run at 80 Mhz
我希望在我的示波器上看到 80 Mhz 時鍾,但我只看到 10 Mhz。
為什么您期望這兩個 C 語句將在一個 CPU 時鍾內執行? 你認為有可能嗎? 當然不是
它被翻譯成
str r2, [r3]
str r2, [r3, #4]
str
指令需要 2 個時鍾。 其中兩個 4 個時鍾。 如果您從 FLASH 運行,則需要添加等待狀態。 所以這將需要大約 8 個時鍾 - 你會看到 10MHz。 您可以嘗試從 SRAM 運行它們,它會更快。
當然,只有當您有這些說明時,它才有效
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;
/*...*/
當您在循環中使用它時,循環將增加額外的開銷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.