OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3236|回复: 2

串口波特率问题

[复制链接]

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2018-4-18
在线时间
18 小时
发表于 2018-5-29 21:50:28 | 显示全部楼层 |阅读模式
1金钱


因为我现在想设置串口波特率为115200,但是实际上有时候为115200,有时候为38400就是不能保障我串口正常收发。而目前串口设置波特率为115200却需要38400的才能调试。

{
RCC->AHB1ENR|=(0x00000004)|(0x00000010);          
        RCC->APB2ENR|=(0x00000020);                                               
        RCC->APB1ENR|=(0x40000000)|(0x80000000);               
//USART6 IOÅäÖÃ
        GPIO_Set(GPIOC,PIN6|PIN7,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
        GPIO_AF_Set(GPIOC,6,8);//PC6,AF8
        GPIO_AF_Set(GPIOC,7,8);//PC7,AF8
        //UART7 IOÅäÖÃ
        GPIO_Set(GPIOE,PIN7|PIN8,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
        GPIO_AF_Set(GPIOE,7,8);        //PE7,AF8
        GPIO_AF_Set(GPIOE,8,8);//PE8,AF8
        //UART8 IOÅäÖÃ
        GPIO_Set(GPIOE,PIN0|PIN1,GPIO_MODE_AF,GPIO_OTYPE_PP,GPIO_SPEED_50M,GPIO_PUPD_PU);
        GPIO_AF_Set(GPIOE,0,8);        //PE0,AF8
        GPIO_AF_Set(GPIOE,1,8);//PE1,AF8
}

        Stm32_Clock_Init(360,25,8,8);//设置为45MHZ
u8 Sys_Clock_Set(u32 plln,u32 pllm,u32 pllp,u32 pllq)
{
        u16 retry=0;
        u8 status=0;
        RCC->CR|=1<<16;                                //HSE &#191;a&#198;&#244;
        while(((RCC->CR&(1<<17))==0)&&(retry<0X1FFF))retry++;//μè′yHSE RDY
        if(retry==0X1FFF)status=1;        //HSE&#206;T·¨&#190;íD÷
        else   
        {
                RCC->APB1ENR|=1<<28;       
                PWR->CR|=3<<14;                
                RCC->CFGR|=(0<<4)|(0<<10)|(0<<13);
                RCC->CR&=~(1<<24);       
                RCC->PLLCFGR=pllm|(plln<<6)|(((pllp>>1)-1)<<16)|(pllq<<24)|(1<<22);
                RCC->CR|=1<<24;                       
                while((RCC->CR&(1<<25))==0);
                FLASH->ACR|=1<<8;               
                FLASH->ACR|=1<<9;               
                FLASH->ACR|=1<<10;               
                FLASH->ACR|=1<<0;               
                RCC->CFGR&=~(3<<0);               
                RCC->CFGR|=2<<0;                 
                while((RCC->CFGR&(3<<2))!=(2<<2));
        }
        return status;
}  



谢谢回答

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

35

主题

560

帖子

2

精华

资深版主

Rank: 8Rank: 8

积分
17753
金钱
17753
注册时间
2018-3-3
在线时间
523 小时
发表于 2018-5-30 09:00:44 | 显示全部楼层
原子哥的GPS实验的时候的代码可以参考一下,
他的代码就是用所有可能的波特率去枚举,这个波特率发送过去没有回应,再换一个波特率去发,直到有回应就是正确的波特率了
/*
*
*
*
*
*
*/
回复

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
120
金钱
120
注册时间
2018-4-18
在线时间
18 小时
 楼主| 发表于 2018-5-31 10:08:41 | 显示全部楼层
问题还未解决求填坑
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-2 20:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表