Программа 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, но я полагаю, что он включен в стандартную периферийную библиотеку, которую вы используете в любом случае.