LPC2000系列ARM UART0

發(fā)布時(shí)間:2024-01-25
特性
lpc2000系列微控制器具有兩個(gè)功能強(qiáng)大的uart,其中uart0具有如下的特性:
16字節(jié)接收fifo和16字節(jié)發(fā)送fifo;
寄存器位置符合16c550工業(yè)標(biāo)準(zhǔn);
接收fifo觸發(fā)點(diǎn)可設(shè)置為1、4、8或14字節(jié);
內(nèi)置波特率發(fā)生器。
使用uart0通信
使用uart0通信需要兩個(gè)引腳,分別為:
uart0內(nèi)部結(jié)構(gòu)示意圖
uart0相關(guān)寄存器描述
——接收緩存寄存器
u0rsr移位寄存器從rxd0引腳接收的有效數(shù)據(jù)將被送到接收fifo中。通過讀取u0rbr寄存器可以將接收fifo中最早接收到的字節(jié)讀出,當(dāng)fifo中不再包含有效數(shù)據(jù)時(shí),該寄存器反映接收到的最后一個(gè)有效字節(jié)數(shù)據(jù)。接收的數(shù)據(jù)不足8位時(shí),高位用0填充。
注意: u0rbr只讀。訪問該寄存器時(shí),u0lcr的除數(shù)鎖存訪問位(dlab)必須為0。
uart0相關(guān)寄存器描述
——發(fā)送器保持寄存器
寫入該寄存器的值將是發(fā)送fifo中的最高字節(jié)。訪問該寄存器時(shí),u0lcr的除數(shù)鎖存訪問位(dlab)必須為0。
注意: u0thr只寫。它的地址與u0rbr相同,通過讀/寫操作予以區(qū)分。
uart0相關(guān)寄存器描述
——除數(shù)鎖存寄存器
這兩個(gè)寄存器決定波特率時(shí)鐘的頻率,而波特率時(shí)鐘必須是波特率的16倍。波特率計(jì)算公式如下:
baudrate = fpclk / ([u0dlm,u0dll]×16)
注意:由于u0dll、u0dlm寄存器與其它寄存器的地址重疊,所以在訪問它們時(shí),u0lcr的除數(shù)鎖存訪問位(dlab)必須為1。
uart0相關(guān)寄存器描述
——中斷使能寄存器
u0ier可以控制uart0的4個(gè)中斷源。其中rbr中斷使能包括兩個(gè)中斷,一個(gè)是接收數(shù)據(jù)可用(rda)中斷,一個(gè)是接收超時(shí)中斷(cti)。稍后將對(duì)各中斷源作詳細(xì)介紹。
uart0相關(guān)寄存器描述
——中斷標(biāo)識(shí)寄存器
uart0相關(guān)寄存器描述
——中斷源說明
rls中斷:該中斷為最高優(yōu)先級(jí)。它在uart0產(chǎn)生了四個(gè)錯(cuò)誤條件(溢出錯(cuò)誤(oe)、奇偶錯(cuò)誤(pe)、幀錯(cuò)誤(fe)和間隔中斷(bi))中的任意一個(gè)時(shí)置位。通過查看u0lsr[4:1]可以了解到產(chǎn)生該中斷的錯(cuò)誤條件。讀取u0lsr時(shí)清除該中斷;
rda中斷:該中斷與cti中斷并列為第二優(yōu)先級(jí)。當(dāng)接收的有效數(shù)據(jù)到達(dá)接收fifo設(shè)置寄存器(u0fcr)中設(shè)置的觸發(fā)點(diǎn)時(shí),rda被激活。當(dāng)接收fifo中的有效數(shù)據(jù)少于觸發(fā)點(diǎn)時(shí),rda復(fù)位;
cti中斷:該中斷為第二優(yōu)先級(jí)。當(dāng)接收fifo中的有效數(shù)據(jù)少于預(yù)定的觸發(fā)點(diǎn)數(shù)量,但至少有一個(gè)字節(jié)時(shí),如果超過接收3.5~4.5個(gè)字節(jié)所需要的時(shí)間仍沒有接收到數(shù)據(jù),那將觸發(fā)該中斷。對(duì)接收fifo的任何操作都會(huì)清零該中斷標(biāo)志;
thre中斷:該中斷為第三優(yōu)先級(jí)。當(dāng)發(fā)送fifo為空并且滿足一定的條件時(shí),該中斷將被觸發(fā)。這些條件是:
3.如果在發(fā)送fifo中有過兩個(gè)字節(jié)以上的數(shù)據(jù),但是現(xiàn)在發(fā)送fifo為空時(shí),將立即觸發(fā)thre中斷。
當(dāng)thre中斷為當(dāng)前有效的最高優(yōu)先級(jí)中斷時(shí),往u0thr寫數(shù)據(jù),或者對(duì)u0iir的讀操作,將使thre中斷復(fù)位。
uart0相關(guān)寄存器描述
——fifo控制寄存器
復(fù)位rxfifo:接收fifo復(fù)位。當(dāng)該位置位時(shí),uart0接收fifo中的所有字節(jié)被清零并復(fù)位指針邏輯。
注意:該位會(huì)自動(dòng)清零。
復(fù)位txfifo:發(fā)送fifo復(fù)位。當(dāng)該位置位時(shí),uart0發(fā)送fifo中的所有字節(jié)被清零并復(fù)位指針邏輯。
注意:該位會(huì)自動(dòng)清零。
—:這些位保留,用戶程序不要向這些位寫入1。
rx觸發(fā)點(diǎn)設(shè)置:通過設(shè)置這兩位可以調(diào)整接收fifo中觸發(fā)rda中斷的有效字節(jié)數(shù)量。
00:觸發(fā)點(diǎn)0(1字節(jié)); 01:觸發(fā)點(diǎn)1(4字節(jié));
10:觸發(fā)點(diǎn)2(8字節(jié)); 11:觸發(fā)點(diǎn)3(14字節(jié));
uart0相關(guān)寄存器描述
——線狀態(tài)控制寄存器
停止位:控制每幀數(shù)據(jù)包含的停止位個(gè)數(shù)。
0:1個(gè)停止位; 1:2個(gè)停止位;
奇偶使能:控制是否進(jìn)行奇偶校驗(yàn)。如果使能,發(fā)送時(shí)將添加一位校驗(yàn)位。
0:禁止奇偶產(chǎn)生和校驗(yàn); 1:使能奇偶產(chǎn)生和校驗(yàn);
奇偶選擇:設(shè)置奇偶校驗(yàn)類型。
00:奇數(shù)(數(shù)據(jù)位+校驗(yàn)位=奇數(shù));
01:偶數(shù)(數(shù)據(jù)位+校驗(yàn)位=偶數(shù));
10:校驗(yàn)位強(qiáng)制為1; 11:校驗(yàn)位強(qiáng)制為0;
間隔:當(dāng)該位為1時(shí),輸出引腳(txd0)強(qiáng)制為邏輯0,可以引起通信對(duì)方(lpc2000)產(chǎn)生間隔中斷。在某些通信方式中,使用間隔中斷作為通信的起始信號(hào)(如:lin bus)。
0:禁止間隔發(fā)送; 1:使能間隔發(fā)送;
除數(shù)鎖存:因?yàn)閡0dll和u0rbr/u0thr的地址重疊,通過設(shè)置該位可以指定其中某個(gè)寄存器操作。
0:禁止訪問除數(shù)鎖存寄存器; 1:使能訪問除數(shù)鎖存寄存器;
rdr:接收數(shù)據(jù)就緒。判斷該位是否置一,決定能否從fifo中讀取數(shù)據(jù)。
0:u0rbr為空;
1:u0rbr中包含有效數(shù)據(jù)。從接收fifo中讀走所有數(shù)據(jù)后,恢復(fù)為0。
oe:溢出錯(cuò)誤標(biāo)志。當(dāng)u0rbr寄存器中已經(jīng)有新的字符就緒,而接收fifo已滿時(shí),該位置位。
0:接收緩存區(qū)沒有溢出;
1:接收緩存區(qū)發(fā)生溢出錯(cuò)誤。
pe:奇偶校驗(yàn)錯(cuò)誤。在使能奇偶校驗(yàn)位之后,對(duì)所有接收的數(shù)據(jù)都進(jìn)行奇偶校驗(yàn),如果與u0lcr中的設(shè)置不符,將引起奇偶校驗(yàn)錯(cuò)誤。
0:沒有發(fā)生奇偶校驗(yàn)錯(cuò)誤;
1:發(fā)生奇偶校驗(yàn)錯(cuò)誤。讀操作使該位恢復(fù)為0。
fe:幀錯(cuò)誤標(biāo)志。當(dāng)接收字符的停止位為0時(shí),產(chǎn)生幀錯(cuò)誤。
0:沒有發(fā)生幀錯(cuò)誤;
1:發(fā)生幀錯(cuò)誤。讀取該位時(shí)恢復(fù)為0。
bi:間隔中斷標(biāo)志。在發(fā)送數(shù)據(jù)時(shí),如果rxd0引腳保持低電平,將產(chǎn)生間隔中斷。發(fā)生間隔中斷后,接收模塊停止數(shù)據(jù)接收。
0:沒有發(fā)生間隔中斷;
1:發(fā)生間隔中斷。
thre:反映u0thr是否為空,也可以認(rèn)為發(fā)送fifo是否為空。
0:不為空;
1:空。對(duì)u0thr進(jìn)行寫操作,使該位恢復(fù)為0。
temt:當(dāng)發(fā)送移位寄存器和u0thr均為空時(shí),該位置位。
0:不為空;
1:空。對(duì)u0thr進(jìn)行寫操作,使該位恢復(fù)為0。
rxfe:如果一個(gè)帶有接收錯(cuò)誤(如幀錯(cuò)誤、奇偶錯(cuò)誤或間隔中斷)的字符裝入u0rbr時(shí),該位置位。
0:u0rbr中沒有接收錯(cuò)誤,或u0fcr[0]為0;
1:u0rbr中包含至少一個(gè)uart0 rx錯(cuò)誤。
使用uart0注意要點(diǎn)
u0rbr與u0thr在同一地址上,但實(shí)際上是兩個(gè)獨(dú)立的寄存器,讀操作時(shí)選擇u0rbr,寫操作時(shí)選擇u0thr;
u0dll與u0rbr/u0thr、u0dlm與u0ier在同一地址上,通過除數(shù)訪問位dlab選擇。當(dāng)該位為1時(shí),選擇u0dll和u0dlm。為0時(shí),選擇u0rbr/u0thr和u0ier;
無論在u0fcr中是否使能fifo,接收fifo不能被禁止。關(guān)閉fifo后,接收fifo只有一個(gè)字節(jié)緩沖;
波特率計(jì)算公式:u0dlm、u0dll = fpclk/(16×baud);
uart0應(yīng)用示例——操作流程
uart0應(yīng)用示例——初始化代碼
uart0應(yīng)用示例——收發(fā)數(shù)據(jù)
上一個(gè):幾千塊錢起訴劃算嗎
下一個(gè):恩必普專利什么時(shí)候到期

mate7中文怎么說,華為mate手機(jī)7中文叫什么
造價(jià)初學(xué)者建議及指導(dǎo)
芬蘭satron 溫度傳感器
可燃?xì)怏w報(bào)警器單位LEL的本質(zhì)含義
瓜葉菊的養(yǎng)殖方法
百度云服務(wù)器云盤掛載
windows10 開始菜單(window10開始菜單在哪)
提升設(shè)備壽命(purolator電機(jī)潤滑油在工控自動(dòng)化中的應(yīng)用價(jià)值解析)
清水混凝土分哪幾類?
OT systems光纖
十八禁 网站在线观看免费视频_2020av天堂网_一 级 黄 色 片免费网站_绝顶高潮合集Videos