Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

请教关于msp430F5438 串口波特率设置的问题

$
0
0

我想得到57600的波特率。

我的 BRCLK frequency  设置为UCSSEL__SMCLK,而SMCLK选择的是默认的DCOCLKDIV,即1048576Hz。

查表可知,在 BRCLK frequency  = 1048576Hz,Baud Rate = 57600,且UCOS16为0情况下:UCBRx = 18,UCBRSx=1。

于是有以下设置:

UCA3CTL1 |= UCSSEL__SMCLK;
UCA3BR0 = 0x12 ; //即十进制的18
UCA3BR1 = 0x00 ;
UCA3MCTL =UCBRS_1;

经测试正常。

然后,按照公式计算,过程如下:

N=f_BRCLK /Baudrate = 1048576/57600=18.2044

因为N大于16,所以使用过采样模式,即需要设置 UCOS16=1,
UCBRx = INT(N/16) = INT(N/16) = INT(18.2044/16) = INT(1.137775) = 1,

UCBRFx=round(((N/16) – INT(N/16)) × 16 )=round(0.137775*16)=round(2.2044)=2

因此,有以下设置:

UCA3CTL1 |= UCSSEL__SMCLK;
UCA3BR0 = 0x01 ;
UCA3BR1 = 0x00 ;
UCA3MCTL =UCBRF_2+ UCOS16;

但,结果是:乱码。

以为是UCBRS没有设置的原因,于是把UCBRS从UCBRS_0到UCBRS_7挨个试,但,都是乱码。

不知道原因所在。请给予帮助。谢谢!


Viewing all articles
Browse latest Browse all 3634

Trending Articles