Предположительно, я настроил на HSE 8 МГц. (Кварц на 4, умножил на 2).
Если в цикле установить 1000000, то примерно (на глаз) 1 сек.
Выходит генератор работает на частоте 1 МГц? Вроде все предделители выключил.
Код: Выделить всё
void rcc_config()
{
RCC_DeInit(); // сброс настроек тактового генератора
RCC_HSICmd(DISABLE); // выключение внутреннего RC HSI 8МГц генератора
RCC_HSEConfig(RCC_HSE_ON); // включение внешнего тактового генератора
while (ERROR == RCC_WaitForHSEStartUp())
{
}
RCC_PREDIV1Config(RCC_PREDIV1_Source_HSE, RCC_PREDIV1_Div1);// Предделитель PREDIV1: HSE перед множителем PLLMUL
RCC_PLLConfig(RCC_PLLSource_PREDIV1 ,RCC_PLLMul_2); // тактирование от HSE с PREDIV1
RCC_PLLCmd(ENABLE); // Включаем PLL
RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK); // На системную шину подаем тактирование с множителя PLLMUL
}
void main(void)
{
rcc_config();
vLedDispGpioConf();
GPIO_SetBits(GPIOB,LED_DISP_DP);
vLedDispDigit(1);
// мигаем светодиодом
while (1)
{
unsigned int time = 0;
for (time=0; time != (1000000); time++)
{
}
GPIOA->ODR ^= 0x8000;
}
}Вот окно отладчика