我已经配置了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);
}
所以请提出答案 并提前感谢
答案 0 :(得分:1)
您发布的代码与USART没有直接关系,而是整个芯片的系统PLL配置。
除了这个特定问题之外,您可能最好在system_stm32f10x.c中使用标准STM32F1xx CMSIS启动代码,该代码在任何情况下都设置PLL。 startup_stm32f10x_cl.s(STM32F1xx Conectivity Line设备的启动代码)。您只需修改system_stm32f10x.c以匹配电路板的晶振频率,它将在调用main()之前设置时钟和其他必要的初始化。
CMSIS可以从STM的网站获得,但我认为它包含在你似乎在任何情况下使用的标准外设库中。