Dingo (29.06.2015 08:05, просмотров: 2785)
Опять в трёх соснах заблудился. STM32F4-Discovery, резонатор 8МГц. Когда прошу тактироваться от HSE и вывести её для контроля - всё нормально. Когда PLL с коэффициентами 8, 200, 8, 4 - на выходе MCO1 53,76 МГц (ожидается 25 МГц).
void CpuClk_Init( void)
{
RCC_HSEConfig( RCC_HSE_ON);
if ( RCC_WaitForHSEStartUp() == ERROR ) {
for (;;) __NOP();
} else {
RCC_PLLConfig ( RCC_PLLSource_HSE, 8, 200, 8, 4 );
RCC_PLLCmd ( ENABLE );
RCC_SYSCLKConfig ( RCC_SYSCLKSource_PLLCLK ); // RCC_SYSCLKSource_PLLCLK
}
}
void on_MCO1 (void)
{
GPIO_InitTypeDef GPIO_InitStructure;
/* Output HSE clock on MCO1 pin(PA8) ****************************************/
/* Enable the GPIOA peripheral */
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);
/* Configure MCO1 pin(PA8) in alternate function */
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;
GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
/* HSE clock selected to output on MCO1 pin(PA8)*/
//RCC_MCO1Config(RCC_MCO1Source_HSE, RCC_MCO1Div_1);
RCC_MCO1Config(RCC_MCO1Source_PLLCLK, RCC_MCO1Div_1);
}
void Clk_Init( void)
{
on_MCO1();
CpuClk_Init();
}