数据手册中的资料
参考短文,机械周期
对波特率产生的计算分析
经常看到的公式是
b a u d = f s o c / 12 / ( 计时器溢出需的数量 ) 2 s m o d ∗ 16 baud = \dfrac{f_{soc}/12/(计时器溢出需的数量)}{2^{smod}*16} baud=2smod∗16fsoc/12/(计时器溢出需的数量)
对公式进行分析, f s o c / 12 f_{soc}/12 fsoc/12表示的是机械周期的频率,也就是计时器的数据加1的时间对应频率。计时器溢出的数量指的是初始值到溢出需要多少机械周期。而对于频率来说,需要值越大,那么溢出频率会变小。最后分母的式子是通过选择smod的值来判定是用哪个系数。
实例分析
例如,SMOD为1,计时器模式是模式2,8位自动重装,那么溢出时间就是(256-初始值);设使用12MHZ的晶振,及 f o s c f_{osc} fosc的值是12MHZ,那么若初始值是0xFD(十进制253),波特率如下计算
b a u d = 12 ∗ 1 0 6 / 12 / ( 256 − 253 ) 2 ∗ 16 ≈ 10416.6 baud=\dfrac{12*10^6/12/(256-253)}{2*16}≈10416.6 baud=2∗1612∗106/12/(256−253)≈10416.6
而当晶振使用11.0592mhz时,波特率的值是9600