使用外部晶振时串口发送乱码

2019-07-20 05:59发布

这几天调试串口收发,不加时钟配置时,使用115200波特率可以正常收发,但使用外部时钟8M时,出现乱码!
网上查了一下,有说改stm32f4xx.h里的这一行
#if !defined  (HSE_VALUE)
  #define HSE_VALUE    ((uint32_t)8000000) /*!< Value of the External oscillator in Hz */


实际这早已经改过了,就是8M

为确保不加时钟配置和外部晶振两者时钟是否一致,特意用定时器写了一个0.5S的中断,两者完全一致!
现在不知道问题出在哪里了....
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
6条回答
myblues
2019-07-20 08:51
问题解决了!
外部时钟配置的代码有问题,换了个代码可以了。但不知道原来的错在哪里,回头慢慢找吧。反正是可以了!!!
开心!收工,回家!
附上时钟配置的代码:
void Clock_Config(void){
     
     
          RCC_DeInit();
    RCC_HSEConfig( RCC_HSE_ON );
  
    if(SUCCESS == RCC_WaitForHSEStartUp())   
    {
       RCC_HCLKConfig  (RCC_SYSCLK_Div1);
       RCC_PCLK1Config (RCC_HCLK_Div4);      
       RCC_PCLK2Config (RCC_HCLK_Div2);        
       RCC_PLLConfig   (RCC_PLLSource_HSE,8,336,2,7);
           //SYSClock = 8/8*336/2 = 168M
        
      RCC_PLLCmd(ENABLE);

        while(RCC_GetFlagStatus ( RCC_FLAG_PLLRDY) == RESET )
        {
        
        }
   
        RCC_SYSCLKConfig  ( RCC_SYSCLKSource_PLLCLK );
        
        while(RCC_GetSYSCLKSource() != 0x08)
        {
            
        }
        
    }


     
   
}

一周热门 更多>