Программа ARM USART для STM32f107

Я настроил usart, но я получаю сообщение об ошибке в следующей строке кода, и я использую eclipse OCD для компиляции, поэтому, пожалуйста, предложите правильный способ настройки часов.

void RCC_Configuration(void)
{
    /* error status */
    ErrorStatus HSEStartUpStatus;

    RCC_DeInit();

    RCC_HSEConfig(RCC_HSE_ON);
    HSEStartUpStatus = RCC_WaitForHSEStartUp();

    if (HSEStartUpStatus == SUCCESS) {
        FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
        FLASH_SetLatency(FLASH_Latency_2);

        RCC_HCLKConfig(RCC_SYSCLK_Div1); 
        RCC_PCLK2Config(RCC_HCLK_Div1); 
        RCC_PCLK1Config(RCC_HCLK_Div2);

        RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
        RCC_PLLCmd(ENABLE);
        while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);

        RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
        while (RCC_GetSYSCLKSource() != 0x08);
    }

    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE);
}

поэтому, пожалуйста, предложите ответ и спасибо заранее

1 ответ

Размещенный вами код не имеет прямого отношения к USART, скорее это конфигурация системы ФАПЧ для всего чипа.

Помимо этой конкретной проблемы, вам лучше использовать стандартный код запуска CMSIS STM32F1xx в system_stm32f10x.c, который в любом случае устанавливает PLL. startup_stm32f10x_cl.s (стартовый код для устройств STM32F1xx Conectivity Line). Вам нужно всего лишь изменить system_stm32f10x.c, чтобы он соответствовал частоте кристалла вашей платы, и он установит часы и другую необходимую инициализацию перед вызовом main().

CMSIS можно получить с сайта STM, но я полагаю, что он включен в стандартную периферийную библиотеку, которую вы используете в любом случае.

Другие вопросы по тегам