波特率的问题

2019-03-23 17:11发布

我用STM32F107VCT6写串口程序。波特率设为9600.
可是用示波器看,一位300多微妙,时间不对。
是不是要设置时钟啊。请问怎么设置才能让波特率对的上啊?谢谢!
我外部晶振8M

此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
4条回答
chenbingjy
2019-03-24 02:40
/ 我加了这一段程序:
void RCC_Configuration()
{
    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);                                  //??AHB??=????
                RCC_PCLK2Config(RCC_HCLK_Div1);                                   //??APB=HCLK
                RCC_PCLK1Config(RCC_HCLK_Div2);                                   //APB1=HCLK/2
                RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_9);                              //PLL??????????,????*9   72MHz
                RCC_PLLCmd(ENABLE);                                               //??PLL?????
                while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);
            RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);                         //??PLL????????????;
                while(RCC_GetSYSCLKSource()!=0x08);                                //??PLL??????????????   
    }
}
波特率没变。我把波特率改为19200,发现一位的时间是150多us。

一周热门 更多>