波特率时钟

原文链接 

 


在一个阳光明媚的中午,又来絮叨

波特率:单片机或计算机在串口通信时的速率

它是与时钟周期有关的

51的 1机器周期 = 12时钟周期

在51的方式0和方式1下,波特率公式很好计算

模式0为 Fosc / 12

      例如:外接24M晶振的单片机,他的机器周期 = 12/24M 秒

模式2为 Fosc / 32 或 Fosc / 64

  (SMOD= 1) (SMOD= 0)

模式1和模式3的波特率由定时器T1的溢出率与SMOD同时决定

      波特率 = T1溢出率 / n


定时时间 = (最大计数值 - 计数器初值)*机器周期

    = (256 - TH1) * (12 / 晶振频率)

    = ( (256 - TH1) * 12 ) / Fosc

溢出频率 = 1 / 定时时间

    = Fosc / ( (256 - TH1) * 12)

波特率 = ((2^SMOD)/32) *溢出频率,    SMOD = 0时

    = ((2^SMOD)/16) *溢出频率,    SMOD = 0时

 

以上是51的波特率与时钟的关系,下面是STM32F1xx的



Tx / Rx    波特率 = Fpclkx / (16 * USARTDIV)

其中,Fpclkx是给串口的时钟,一般我们知道波特率和时钟,即可求得USARTDIV

USARTDIV = 72000000 / (115200*16) = 39.0625

      = (pclk2 * 10^6) / (bound * 16)

 

相关文章:

  • 2022-02-10
  • 2021-06-27
  • 2022-12-23
  • 2021-12-14
  • 2022-12-23
  • 2022-01-17
  • 2021-11-08
猜你喜欢
  • 2021-09-14
  • 2021-05-30
相关资源
相似解决方案