? USART0和USART1是串行通信接口,兩個(gè)USART具有同樣的功能,能夠分別運(yùn)行于異步UART模式和同步API模式。
1 串口模式
? UART模式提供異步串行接口,在UART模式中,有2中接口選擇方式:2線接口和4線接口:
2線接口:使用RXD(P0_2)、TXD(P0_3)。
4線接口:使用引腳RXD(P0_2)、TXD(P0_3)、RTS(P0_5)和CTS(P0_4)。
? UART模式的操作具有以下特點(diǎn):
8位或者9位負(fù)載數(shù)據(jù)。
奇校驗(yàn)、偶校驗(yàn)或者無奇偶校驗(yàn)。
配置起始位和停止位。
配置LSB(最低有效位)或者M(jìn)SB(最高有效位)首先傳送。
獨(dú)立收發(fā)中斷。
獨(dú)立收發(fā)DMA觸發(fā)。
奇偶校驗(yàn)和幀校驗(yàn)出錯(cuò)狀態(tài)。
? UART模式提供全雙工傳送,接收器中的位同步不影響收發(fā)功能。傳送一個(gè)UART字節(jié)包括1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)作為可選的第9位數(shù)據(jù)或者奇偶校驗(yàn)位,再加上1個(gè)或者2個(gè)停止位。UART操作由USART和狀態(tài)寄存器UxCSR以及UART控制寄存器UxUCR來控制,這里的x是USART的編號(hào),其數(shù)值為0或1、
位
名稱
復(fù)位
R/W
描述
7
MODE
0
R/W
USART模式選擇:
? 0:SPI模式
? 1:UART模式
6
RE
0
R/W
啟動(dòng)UART接收器。注意UART完全配置之前不能接收。
? 0:禁止接收器
? 1:使能接收器
5
SLAVE
0
R/W
SPI主或者從模式選擇
? 0:SPI主模式
? 1:SPI從模式
4
FE
0
R/W0
UART幀錯(cuò)誤狀態(tài)
? 0:無幀錯(cuò)誤檢測(cè)
? 1:字節(jié)收到不正確停止位級(jí)別
3
FRR
0
R/W0
UART奇偶校驗(yàn)錯(cuò)誤狀態(tài)
? 0:無奇偶校驗(yàn)
? 1:字節(jié)收到奇偶錯(cuò)誤
2
RX_BYTE
0
R/W0
接收字節(jié)狀態(tài),UART模式和SPI模式。當(dāng)讀U0DBUF時(shí)該位自動(dòng)清零,通過寫0清除它,這樣能有效丟棄U0BUF中的數(shù)據(jù)。
? 0:沒有接收字節(jié)
? 1:接收字節(jié)就緒
1
TX_BYTE
0
R/W0
傳送字節(jié)狀態(tài),UART和SPI從模式
? 0:字節(jié)沒有傳送
? 1:寫到數(shù)據(jù)緩存寄存器的最后字節(jié)已傳送
0
ACTIVE
0
R
USART傳送/接收主動(dòng)狀態(tài):
0:USART空閑
1:USART在傳送或者接收模式忙碌
? 選擇USART模式為UART模式并允許接收寄存器設(shè)置示例:
//設(shè)置UART模式 U0CSR?|=?0X80; //允許接收 U0CSR?|=?0x40;
位
名稱
復(fù)位
R/W
描述
7
FLUSH
0
R/W1
清除單元。當(dāng)設(shè)置時(shí),該事件將會(huì)立即停止當(dāng)前操作并返回單元的空閑狀態(tài)。
6
FLOW
0
R/W
UART硬件流使能。從RTS和CTS引腳選擇硬件流控制的使用
? 0:流控制禁止
? 1:流控制使能
5
D9
0
R/W
UART奇偶校驗(yàn)位。當(dāng)使能奇偶校驗(yàn),寫入D9的值決定發(fā)送的第9位的值。如果收到的第9位不匹配收到的字節(jié)的奇偶校驗(yàn),接收?qǐng)?bào)告ERR。
? 0:奇校驗(yàn)
? 1:偶校驗(yàn)
4
BIT9
0
R/W
UART9位數(shù)據(jù)使能。當(dāng)該位是1時(shí),使能奇偶校驗(yàn)位傳輸即第9位。如果通過PARITY使能奇偶校驗(yàn),第9位的內(nèi)容通過D9給出。
? 0:8位傳輸
? 1:9位傳輸
3
PARITY
0
R/W
UART奇偶校驗(yàn)使能。除了為奇偶校驗(yàn)設(shè)置該位用于計(jì)算,必須使能9位模式
? 0:禁用奇偶校驗(yàn)
? 1:使能奇偶校驗(yàn)
2
SPB
0
R/W
UART停止位數(shù)。選擇要傳送的停止位的位數(shù)
? 0:1位停止位
? 1:2位停止位
1
STOP
0
R/W
UART停止位的電平,必須不同于開始為的電平
? 0:停止位低電平
? 1:停止位高電平
0
START
0
R/W
UART起始位電平,閑置先的極性采用選擇的起始位級(jí)別的電平相反的電平
? 0:起始位低電平
? 1:起始位高電平
? 當(dāng)UxCSR.MODE設(shè)置為1時(shí),就選擇了UART模式。當(dāng)USART收發(fā)數(shù)據(jù)緩沖器UxDBUF寫入數(shù)據(jù)時(shí),該字節(jié)發(fā)送至輸出引腳TXD。UxDBUF寄存器是雙緩沖的。
位 名稱 復(fù)位 R/W 描述 7:0 DATA[7:0] 0x00 R/W ? USART接收和傳送數(shù)據(jù)。當(dāng)寫這個(gè)寄存器的時(shí)候數(shù)據(jù)被寫到內(nèi)部的傳送數(shù)據(jù)寄存器,當(dāng)讀取該寄存器的時(shí)候,數(shù)據(jù)倆字內(nèi)部讀取的數(shù)據(jù)寄存器。 ? 需讀出U0DBUF接收的字符串?dāng)?shù)據(jù),寄存器的設(shè)置示例:
//定義一個(gè)字符型變量 unsigned?char?temp; //讀出U0DBUF中的數(shù)據(jù) temp?=?U0DBUF;
1)UART的發(fā)送過程
2)UART的接收過程
3)UART的硬件流控制
4)UART的特征格式
5)波特率的產(chǎn)生
6)系統(tǒng)時(shí)鐘的設(shè)置