Embedded STM32f107的ARM USART程序

Embedded STM32f107的ARM USART程序,embedded,arm,usart,Embedded,Arm,Usart,我已经配置了usart,但是我在下面的代码行中遇到了错误,我正在使用EclipseOCD进行编译,所以请建议正确的方法来配置时钟 void RCC_Configuration(void) { /* error status */ ErrorStatus HSEStartUpStatus; RCC_DeInit(); RCC_HSEConfig(RCC_HSE_ON); HSEStartUpStatus = RCC_WaitForHSEStartUp()

我已经配置了usart,但是我在下面的代码行中遇到了错误,我正在使用EclipseOCD进行编译,所以请建议正确的方法来配置时钟

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);
}
所以请给出答案
提前感谢

您发布的代码与USART没有直接关系,而是整个芯片的系统PLL配置

除了这个特殊问题之外,您最好在system_stm32f10x.c中使用标准STM32f1x CMSIS启动代码,该代码在任何情况下都会设置PLL。startup_stm32f1x_cl.s(STM32f1x连接线设备的启动代码)。您只需修改system_stm32f10x.c以匹配电路板的晶体频率,它将在调用main()之前设置时钟和其他必要的初始化


CMSIS可以从STM的站点获得,但我相信它包含在您在任何情况下都会使用的标准外设库中。

您遇到了什么错误?哪一行是你得到错误的地方(你的帖子包含多行)?你可能因为相信而有罪。FLASH\u PrefetchBufferCmd(FLASH\u PrefetchBuffer\u Enable);RCC\u PLLConfig(RCC\u PLLSource\u HSE\u Div1,RCC\u PLLMul\u 9);RCC_PLLCmd(启用);而(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)=重置);这是我得到错误的一行,但我不知道这是编译器的问题或其他事情。此外,我还将所有与项目和互连相关的头文件包含在我的programming@sHamiR:您应该通过编辑问题来澄清问题,而不是添加评论,因为您可以看到评论没有帖子的格式功能,而且不能以同样的方式进行投票-修正问题以防止对其进行否决。此外,您还没有回答问题:“错误是什么……”;如果编译器、调试器或运行时正在显示诊断消息,您不认为它可能与诊断密切相关吗!?