新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > MSP430教程15:MSP430單片機串行通訊模塊

MSP430教程15:MSP430單片機串行通訊模塊

作者: 時間:2016-11-13 來源:網(wǎng)絡 收藏
串行異步通訊模塊

MSP430系列產(chǎn)品中,每一款型號都能實現(xiàn)串行通訊的功能,在MSP430F1X11系列中,可以用定時器A和軟件編程結合實現(xiàn)串行通訊功能。而在其它系列產(chǎn)品中都帶有硬件的串行通訊模塊USART;另外,MSP430F14X系列產(chǎn)品中還帶了兩個串行通訊模塊。而在MSP430F15X,F(xiàn)16X系列中USART0還可以實現(xiàn)IIC總線通訊。在UART模塊中帶有UART串行異步通訊和SPI同步通訊硬件資源。

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

圖是USART模塊結構圖,從下圖可以看出USART模塊分別由波特率部分:波特率發(fā)生器,串行通訊接收/發(fā)送控制寄存器。

接收部分,發(fā)送部分,端口IO部分。

串行異步通訊的特點:

1-異步通訊模式,包括線路空閑/地址位通信協(xié)議。

2-有兩個單獨的移位寄存器,輸入/輸出移位寄存器(如下圖)。

3-傳輸7位或8位數(shù)據(jù),可采用奇偶或無校驗。

4-可編程實現(xiàn)波特率調(diào)整。

5-分別發(fā),收單獨中斷。

6-有效地檢測到起始位實現(xiàn)從低功耗喚醒。

7-狀態(tài)標志檢測錯誤或者地址位。

串行同步通訊(SPI)的特點:

1-動持3線/4線的SPI通訊。

2-支持主機模式與從機模式。

3-收發(fā)有單獨的緩沖器,移位寄存器。

4-收發(fā)有單獨的中斷。

5-時鐘極性和相位可編程。

6-主機模式的時鐘頻率可編程。

7-7位/8位字符長度。

有關USART的詳細應有原理,建議初學者參考清華大學出版社的<>。

串行異步通訊應用例程

//*******************************************

//MSP430F149串口行實驗程序

//P3.4為發(fā)送,P3.5為接收

//晶體使32768HZ.

//程序描述:利用串口調(diào)試軟件;向串口發(fā)送一個字符,MSP430單片機接收到后從低功耗中喚醒.并將收接緩沖區(qū)的字符再發(fā)送到//電腦上的調(diào)試軟件中.單片機發(fā)送完后又進入低功耗狀態(tài).

//*******************************************

#include <msp430x14x.h>

void main(void)

{

WDTCTL = WDTPW + WDTHOLD; // 停止WDT

UCTL0 = CHAR; // 設串口控制寄存器,設為8位字符格式

UTCTL0 = SSEL0; // 設串口控制寄存器所使用的時鐘,選擇UCLK = ACLK

UBR00 = 0x0D; // 波特率設置32k/2400 - 13.65

UBR10 = 0x00;

UMCTL0 = 0x6D; // 波特率調(diào)整器設置

ME1 |= UTXE0 + URXE0; // 模塊允許寄存器設置,使能USART0 TXD/RXD

IE1 |= URXIE0; // 中斷允許寄存器設置,接收中斷允許

P3SEL |= 0x30; // 將P3.4,5使用外圍模塊 = USART0 TXD/RXD

P3DIR |= 0x10; // 將P3.4設為輸出(發(fā)),P3.5默認為輸入(收)

_EINT(); // 全局中斷使能

// Mainloop

for (;;)

{

LPM3; // 進入LPM3模式,等待字符接收.

while ((IFG1 & UTXIFG0) == 0); // USART0發(fā)送UTXIFG0=1,表示UTXBUF準備好發(fā)送一下字符

TXBUF0 = RXBUF0; // 將收到緩沖區(qū)字符送發(fā)送區(qū)

}

}

//串口接收中斷,退出LPM3模式.

#pragma vector=USART0RX_VECTOR

__interrupt void usart0_rx (void)

{

LPM3_EXIT;

}

//*****************************************

//例程結束



評論


技術專區(qū)

關閉