原因是:RCC配置前没有调用RCC_DeInit(),导致配置失效,配置前需要调用RCC_DeInit();
通过下述CLKOUT_MCO2()方法可以输出SYSCLK或PLLCLK;
备注:需要保证PC9没有在其他地方使用,并且MCO2输出的时钟频率不能超过100MHz;
MCO1不能选择SYSCLK;
测量方法:示波器一个探头接PC9,另一个探头接GND;
void CLKOUT_MCO2(void)
{
//通过MCO2--PC9输出SYSCLK或PLLCLK
GPIO_InitTypeDef GPIO_InitStructure;
RCC_ClockSecuritySystemCmd(ENABLE);
/* Enable GPIOs clocks */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);
GPIO_PinAFConfig(GPIOC, GPIO_PinSource9, GPIO_AF_MCO);//打开引脚复用功能
/* Configure MCO2 (PC9) */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP; //UP
GPIO_Init(GPIOC, &GPIO_InitStructure);
//输出时钟 4分频(MCO输出不能超过100MHz)
RCC_MCO2Config(RCC_MCO2Source_SYSCLK, RCC_MCO2Div_4);
}
?
?
|