分享到:
对于给定的时钟源,波特率有分频因子决定
很多情况下N是非整数,所以使用分频器和调整器两部分来组成波特率发生器,这样是分频因子尽量接近需要值。分频器完成分频功能,调整器的数据按每一位计算,将对应为的数据(0或1)加到每次分频计数器的分频值上。
若N大于或等于16,则可以通过设置UCOS16来启动 oversampling baud rate generation mode 。
具体的寄存器设置方法:
一、 使用低速时钟
UCBRx = INT(N)
UCBRSx = round((N – INT(N))*8)
寄存器的具体设置可以查典型波特率和误差表得到。
例如,使用32768Hz的时钟源产生9600波特率。
计算分频因子:
N = 32768/9600 = 3.41
所以,UCBRx = INT(N) = 3
UCBRSx = round((N – INT(N))* 8)= 3
同样可以直接通过查表得到:
UCBRx = 3,
UCBRSx = 3;
UCBRFx = 0.
所以,设置
UCBR0 = 3;
UCBR1 = 0;
UCA0MCTL = UCBRS1 + UCBRS0;(0×03) 即可。
二、 使用高速时钟
UCBRx = INT(N/16)
UNCBRFx = round(((N/16)-INT(n/16))*16)
(0 )
(0 )
回复
举报
发表回复
块
导
航
举报
请选择举报类别
- 广告垃圾
- 违规内容
- 恶意灌水
- 重复发帖