美文网首页
串口 pclk2和波特率到底有什么关系?

串口 pclk2和波特率到底有什么关系?

作者: YuQiao0303 | 来源:发表于2019-06-05 10:39 被阅读0次

2019-06-05
为什么寄存器版本中,串口初始化函数有两个参数,pclk2和bound,
而库函数版中,只有bound一个参数:

以下内容整理自寄存器版的开发指南:

波特率计算公式

当OVER8 = 0 时


image.png
  • Tx / Rx 就是波特率?
  • fPCLKx是串口时钟
    • PCLK1 用于 USART2~5
    • PCLK2 用于 USART1 和USART6
  • USARTDIV 是一个无符号定点数

波特率寄存器 USART_BRR

STM32F4 的每个串口都有波特率寄存器 USART_BRR
32位,其中高16位保留

image.png
  • mantissa是整数部分
  • fraction是小数部分 * 16 (OVER8 = 0时乘16,OVER8 = 1 时乘不知道多少)

波特率计算举例

假设串口 1 要设置为 115200 的波特率,而 PCLK2 的时钟(即 APB2 总线时钟频率) 为 84M
求USARTDIV

USARTDIV
= fpCLK2 / 16 / 波特率
= 84000000/16/115200
= 45.572

整数部分为45,DIV_Mantissa = 45 = 0x2D
小数部分为0.572,DIV_Fraction = 0.572 * 16 =9.152 = 0x09

OVER8 位

接收器过采样设置位: OVER8 位,
该位在USART_CR1 寄存器里面设置,
当 OVER8=0 的时候,采用 16 倍过采样,可以增加接收器对时钟的容差,精度高,容错性好。
当 OVER8=1 的时候,可以获得更高的速度。
我们一般设置 OVER8=0,以得到更好的容错性,以下皆以 OVER8=0 进行介绍。
关于 OVER8 的详细介绍,请看《STM32F4xx 中文参考手册》第 26.3.3 节。

结论

波特率是由plk和其他一些寄存器的值共同决定的
确切的说,波特率由USART_CR1 寄存器里的OVER8位,波特率寄存器 USART_BRR的值,和对应的时钟pclk频率共同决定,公式在上方。
寄存器版中,将pclk的值作为参数,传进来参与计算
而库函数版中,可能是通过其他方式获得了时钟频率,因此可以直接设置波特率

void uart_init(u32 bound) //库函数版
void uart_init(u32 pclk2,u32 bound) //寄存器版
这两个函数中,bound参数一样时,可以认为效果是等价的

相关文章

  • 串口 pclk2和波特率到底有什么关系?

    2019-06-05为什么寄存器版本中,串口初始化函数有两个参数,pclk2和bound,而库函数版中,只有bou...

  • stc12c单片机

    串口1:波特率4800 串口2:波特率9600TXD(P1.3)RXD(P1.2)

  • 单片机的com口通讯

    通讯流程 open函数打开串口设备 设置串口的波特率波特率:串口通讯速度的指标,就是比特率比特率 9600bps,...

  • XiaomiRouter自学之路(09-更改串口波特率及Ente

    XiaomiRouter自学之路(09-更改串口波特率及Enter键触发) 在前面几个章节我们有提到串口波特率不是...

  • 纽迪希亚配置文件详细说明

    [COM] 串口配置PortName 串口号BaudRate 波特率DataBits 数据位StopBits 停止...

  • 串口波特率的判断

    在调试手机时,难免要抓取串口log进行分析,那么对于串口的波特率如何进行判断呢? 1、波特率在代码中的位置: 2、...

  • 命题-第十四章-简答

    MCS-51单片机串口四种工作方式的波特率是如何计算? 【解析】 波特率是串行口每秒钟发送或接受的位数。波特率和串...

  • 树莓派串口设置

    1. 树莓派串口设置 1.1. 将树莓派的硬件串口与mini串口默认映射对换 硬件串口由硬件实现,有单独波特率时钟...

  • 常用的串口JNI方法

    打开串口 定义的JNI方法 c代码 设置波特率方法 关闭串口 定义的JNI方法 c代码 读取串口数据 定义的JNI...

  • 基于Ymodem协议的IAP上位机(C#)

    其中两个ComboBox是分别用于选择和显示串口端口号和波特率的。配置好正确的端口号和波特率,选择要更新的固件。点...

网友评论

      本文标题:串口 pclk2和波特率到底有什么关系?

      本文链接:https://www.haomeiwen.com/subject/wsrjxctx.html