3

STM32L152RB ボードを使用しており、PLL クロックを使用するようにシステム クロックを構成しようとしていますが、RCC_FLAG_PLLRDY フラグが設定されているため、プログラムが while ループに陥っています。私が間違っていることをさせてください

EnableHSI();
RCC_PLLConfig(RCC_PLLSource_HSI,RCC_PLLMul_3,RCC_PLLDiv_2);
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
RCC_SYSCLKConfig( RCC_SYSCLKSource_PLLCLK);
t=GetSystemClockSource();
4

1 に答える 1

5

リファレンスマニュアルの「CPU クロック周波数とフラッシュメモリ読み出し時間の関係」を参照してください。CPU 速度が 16MHz を超える場合は、フラッシュ レイテンシを 1WS (待機状態) に設定する必要があります。PLL をクロック ソースとして設定する前に、次のようにします。

FLASH->ACR  = FLASH_ACR_ACC64;   // 64-bit access
FLASH->ACR |= FLASH_ACR_LATENCY; // one wait state
FLASH->ACR |= FLASH_ACR_PRFTEN;  // prefetch enable
于 2015-07-19T19:10:47.847 に答える