[STM8] STM8S105使用外部晶振做串口通讯时,波特率变为设置值的一半

[复制链接]
2981|6
 楼主| rookie108 发表于 2017-1-1 20:41 | 显示全部楼层 |阅读模式
STM8S105使用外部晶振做串口通讯时,波特率变为设置值的一半。请问这是什么原因?程序种下:
使用内部时钟时,设置波特率为115200,电脑上也设置为115200能正常通讯,STM8S105端的配置如下:    CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//直接使用内部时钟,并一分频。
    UART2_DeInit();
        //波特率,字节数,1个停止位,无奇偶效验位,非同步模式,允许接受和发送
    UART2_Init((u32)115200, UART2_WORDLENGTH_8D, UART2_STOPBITS_1, UART2_PARITY_NO , UART2_SYNCMODE_CLOCK_DISABLE , UART2_MODE_TXRX_ENABLE);
    UART2_Cmd(ENABLE );
    //设置内部高速时钟16M为主时钟


现在我改成使用外部时钟,晶振为8M,设置波特率为115200,电脑上要将波特率设置为57600时才能正常通讯,STM8S105端的配置如下:
CLK_DeInit();                                      //--> 时钟各变量初始化
CLK_HSECmd(ENABLE);                                //--> 外部高速晶振使能
while(SET != CLK_GetFlagStatus(CLK_FLAG_HSERDY)); //--> 测试外部高速晶振位是不是使能
CLK_SYSCLKConfig(CLK_PRESCALER_CPUDIV1);           //--> 外部时钟预分频器,1分频
CLK_ClockSwitchCmd(ENABLE);                        //--> 使能时钟切换功能
CLK_ClockSwitchConfig(CLK_SWITCHMODE_AUTO,CLK_SOURCE_HSE,DISABLE,CLK_CURRENTCLOCKSTATE_DISABLE);

    UART2_DeInit();
        //波特率,字节数,1个停止位,无奇偶效验位,非同步模式,允许接受和发送
    UART2_Init((u32)115200, UART2_WORDLENGTH_8D, UART2_STOPBITS_1, UART2_PARITY_NO , UART2_SYNCMODE_CLOCK_DISABLE , UART2_MODE_TXRX_ENABLE);
    UART2_Cmd(ENABLE );



我想是因为使用外部时钟为8M时,导致波特率降低,请问要如何配置才能在外部时钟为8M的情况下,串口波特率也一样为115200?

谢谢。


xyz769 发表于 2017-1-1 23:18 | 显示全部楼层
改库文件中定义的晶振频率参数即可。

评分

参与人数 1威望 +1 收起 理由
rookie108 + 1 很给力!

查看全部评分

 楼主| rookie108 发表于 2017-1-1 23:29 | 显示全部楼层
xyz769 发表于 2017-1-1 23:18
改库文件中定义的晶振频率参数即可。

我也是这样想,但无从入手啊。能否指点一下?
 楼主| rookie108 发表于 2017-1-2 11:21 | 显示全部楼层
已经搞定了。谢谢
xyz549040622 发表于 2017-1-2 14:18 | 显示全部楼层
rookie108 发表于 2017-1-2 11:21
已经搞定了。谢谢

在哪找到的定义了,分享经验。
 楼主| rookie108 发表于 2017-1-2 18:36 | 显示全部楼层
xyz549040622 发表于 2017-1-2 14:18
在哪找到的定义了,分享经验。

把stm8s.h文件中的#define HSE_VALUE ((u32)16000000)改为#define HSE_VALUE ((u32)8000000)即可。
如下图所示:
QQ截图20170102183546.jpg

评论

留个脚印 后人受益 !!!  发表于 2023-1-29 20:09

评分

参与人数 1威望 +10 收起 理由
xyz549040622 + 10 很给力!

查看全部评分

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

本版积分规则

10

主题

29

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部