新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > msp430的USCI串口,妙招搞定

msp430的USCI串口,妙招搞定

作者: 時間:2016-11-09 來源:網(wǎng)絡(luò) 收藏
430USCI串口(UART mode)初始化設(shè)置十分繁雜, UCA0BR0 UCA0BR1 UCA0MCTL 等還需按照波特率計算,并且有小數(shù)部分微調(diào),在這里共享一個頭文件,在操作串口時,只要一個init_uart(9600);就全搞定,注:9600還能改成4800 115200等其他波特率,十分方便。

#define clock 8000000
#define UCBRS(x) UCBRS_##x

本文引用地址:http://m.butianyuan.cn/article/201611/317909.htm

void uart_init(long baud)
{
float x = clock / baud ;
long y = clock / baud ;
char n;
P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
P1SEL2 = BIT1 + BIT2 ;
UCA0CTL1|=UCSSEL_2 ;

UCA0BR0 = y % 256;
UCA0BR1 = y / 256;

n=(char)((x-y)*8);
UCA0MCTL=2*n; //UCBRS_n n為*2
UCA0CTL1 &= ~UCSWRST;
IE2 |= UCA0RXIE ;
}

UCA0MCTL=2*n; 這里是移位操作,詳情請看register。

當(dāng)然,時鐘修改了的話,也要記得把clock修改一下。

好用的話,大家支持一個吧,下面我把頭文件共享,支持printf,getchar等。



關(guān)鍵詞: msp430USCI串

評論


技術(shù)專區(qū)

關(guān)閉