谢谢香水城主的回复
程序是用库函数做的,时钟配置应该是对的,外部6M,PLL倍到54M,配置如下:
void RCC_Configuration(void)
{
RCC_DeInit();
RCC_HSEConfig(RCC_HSE_ON); //打开HSE
while(RCC_WaitForHSEStartUp() != SUCCESS);//待待HSE稳定
RCC_HCLKConfig(RCC_SYSCLK_Div1); //54M
RCC_PCLK2Config(RCC_SYSCLK_Div1); //54M
RCC_PCLK1Config(RCC_SYSCLK_Div2); //27M
FLASH_SetLatency(FLASH_Latency_2);
FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9); //6M/1*9
RCC_PLLCmd(ENABLE);
while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
while(RCC_GetSYSCLKSource() != 0x08);
}
IO口测试是翻转IO电平,在示波器上看波形。
测试时发现PCLK1 2分频和1分频IO的翻转频率会减少一半,(1分频时超过36M,APB1的外设会有问题),不知道怎么回事。
当然,配HCLK2的时钟,IO口的翻转也会变化,但不知道为什么PCLK1对其也有影响
|