2013-02-27 2 views
-4

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

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

Какая ошибка вы получаете? Какая строка, в которой вы получаете ошибку (ваша публикация содержит более одной строки)? –

+2

Вы можете быть виновны в вере [Гуру Миф] (http://www.toomuchcode.org/2008/11/guru-myth.html). – Clifford

+0

FLASH_PrefetchBufferCmd (FLASH_PrefetchBuffer_Enable); – sHamiR

ответ

1

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

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

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

Смежные вопросы