本帖最后由 我的名字是 于 2022-9-19 22:03 编辑
谢谢,对照例程找到原因了,当倍频超过8的时候,必须要用FLASH_Latency_Set设置code latency value
- FLASH_LATENCY_0 FLASH Zero Latency cycle, 0 < HCLK <= 32MHz
- FLASH_LATENCY_1 FLASH One Latency cycle, 32MHz < HCLK<= 64MHz
- FLASH_LATENCY_2 FLASH Two Latency cycles, 64MHz < HCLK<= 96MHz
- FLASH_LATENCY_3 FLASH Three Latency cycles, 96MHz < HCLK
这是主动降频吗? 刚才测了一下,好像这几个参数也不是那么严格,当系统频率128m的时候,只要不设置FLASH_LATENCY_0,都可以正常工作。
RCC_HSI_Enable();
FLASH_Latency_Set(FLASH_LATENCY_1);
RCC_Pclk1_Config(RCC_HCLK_DIV8); //APB1 32m
RCC_Pclk2_Config(RCC_HCLK_DIV4); //APB2 64M
RCC_Hclk_Config(RCC_HCLK_DIV1); //HCLK 128M
RCC_PLL_Config(RCC_PLL_SRC_HSI_DIV1, RCC_PLL_MUL_16); //SYSCLK AHB HCLK 128M
RCC_PLL_Enable();
RCC_Sysclk_Config(RCC_SYSCLK_SRC_PLLCLK);
|