




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第第6 6章章 使用使用C C語言操作語言操作DSPDSP的寄存器的寄存器北京航空航天大學(xué)出版社 作者:顧衛(wèi)鋼北京航空航天大學(xué)出版社 作者:顧衛(wèi)鋼 電信學(xué)院:張電信學(xué)院:張 蕾蕾DSP原理及應(yīng)用6.1 寄存器的C語言訪問特殊的存儲單元,具有特殊的功能、具體的含義特殊的存儲單元,具有特殊的功能、具體的含義DSP通過對寄存器的操作能夠?qū)崿F(xiàn)對系統(tǒng)和外設(shè)功能的通過對寄存器的操作能夠?qū)崿F(xiàn)對系統(tǒng)和外設(shè)功能的配置與控制。配置與控制。在在DSP的開發(fā)過程中,對于寄存器的操作是極為重要的,的開發(fā)過程中,對于寄存器的操作是極為重要的,也是很頻繁的。也是很頻繁的。對寄存器的操作是否方便會直接影響到對寄存器的操作是否
2、方便會直接影響到DSP的開發(fā)是否的開發(fā)是否方便。方便。F2812為大家提供了為大家提供了位定義位定義和和寄存器結(jié)構(gòu)體寄存器結(jié)構(gòu)體的方式,能的方式,能夠很方便的實現(xiàn)對夠很方便的實現(xiàn)對DSP內(nèi)部寄存器的訪問和控制。內(nèi)部寄存器的訪問和控制。 6.1.1 了解SCI的寄存器6.1.1 了解SCI的寄存器寄存器名寄存器名地址地址占用空間占用空間功能描述功能描述SCICCR0 x0000 705016位位SCI-A通信控制寄存器通信控制寄存器SCICTL10 x0000 705116位位SCI-A控制寄存器控制寄存器1SCIHBAUD0 x0000 705216位位SCI-A波特率設(shè)置寄存器高字節(jié)波特率設(shè)
3、置寄存器高字節(jié)SCILBAUD0 x0000 705316位位SCI-A波特率設(shè)置寄存器低字節(jié)波特率設(shè)置寄存器低字節(jié)SCICTL20 x0000 705416位位SCI-A控制寄存器控制寄存器2SCIRXST0 x0000 705516位位SCI-A接收狀態(tài)寄存器接收狀態(tài)寄存器SCIRXEMU0 x0000 705616位位SCI-A接收仿真數(shù)據(jù)緩沖寄存器接收仿真數(shù)據(jù)緩沖寄存器SCIRXBUF0 x0000 705716位位SCI-A接收數(shù)據(jù)緩沖寄存器接收數(shù)據(jù)緩沖寄存器SCITXBUF0 x0000 705916位位SCI-A發(fā)送數(shù)據(jù)緩沖寄存器發(fā)送數(shù)據(jù)緩沖寄存器SCIFFTX0 x0000 7
4、05A16位位SCI-A FIFO發(fā)送寄存器發(fā)送寄存器SCIFFRX0 x0000 705B16位位SCI-A FIFO接收寄存器接收寄存器SCIFFCT0 x0000 705C16位位SCI-A FIFO控制寄存器控制寄存器SCIPRI0 x0000 705F16位位SCI-A 極性控制寄存器極性控制寄存器寄存器地址缺少寄存器地址缺少0 x0000 7058、0 x0000 705D、0 x0000 705E6.1.1 了解SCI的寄存器寄存器名寄存器名地址地址占用空間占用空間功能描述功能描述SCICCR0 x0000 775016位位SCI-B通信控制寄存器通信控制寄存器SCICTL10
5、x0000 775116位位SCI-B控制寄存器控制寄存器1SCIHBAUD0 x0000 775216位位SCI-B波特率設(shè)置寄存器高字節(jié)波特率設(shè)置寄存器高字節(jié)SCILBAUD0 x0000 775316位位SCI-B波特率設(shè)置寄存器低字節(jié)波特率設(shè)置寄存器低字節(jié)SCICTL20 x0000 775416位位SCI-B控制寄存器控制寄存器2SCIRXST0 x0000 775516位位SCI-B接收狀態(tài)寄存器接收狀態(tài)寄存器SCIRXEMU0 x0000 775616位位SCI-B接收仿真數(shù)據(jù)緩沖寄存器接收仿真數(shù)據(jù)緩沖寄存器SCIRXBUF0 x0000 775716位位SCI-B接收數(shù)據(jù)緩沖寄
6、存器接收數(shù)據(jù)緩沖寄存器SCITXBUF0 x0000 775916位位SCI-B發(fā)送數(shù)據(jù)緩沖寄存器發(fā)送數(shù)據(jù)緩沖寄存器SCIFFTX0 x0000 775A16位位SCI-B FIFO發(fā)送寄存器發(fā)送寄存器SCIFFRX0 x0000 775B16位位SCI-B FIFO接收寄存器接收寄存器SCIFFCT0 x0000 775C16位位SCI-B FIFO控制寄存器控制寄存器SCIPRI0 x0000 775F16位位SCI-B 極性控制寄存器極性控制寄存器寄存器地址缺少寄存器地址缺少0 x0000 7758、0 x0000 775D、0 x0000 775E這些寄存器位于這些寄存器位于F2812
7、F2812存儲器空間的外設(shè)幀存儲器空間的外設(shè)幀2 2內(nèi),是在物理上實內(nèi),是在物理上實際存在的存儲器單元。際存在的存儲器單元。外設(shè)幀:外設(shè)幀:Peripheral Frames 0Peripheral Frames 0、1 1、2 2三個外設(shè)幀映射空間及其包含三個外設(shè)幀映射空間及其包含的相關(guān)寄存器如下:的相關(guān)寄存器如下:6.1.2 使用位定義的方法定義寄存器所謂所謂“位域位域”(也稱位段)就是把一個字節(jié)中的二進(jìn)制位(也稱位段)就是把一個字節(jié)中的二進(jìn)制位劃分為幾個不同的區(qū)域,并說明每個區(qū)域的位數(shù)。劃分為幾個不同的區(qū)域,并說明每個區(qū)域的位數(shù)。每個域都有一個域名,允許在程序中按域名進(jìn)行操作。每個域都有
8、一個域名,允許在程序中按域名進(jìn)行操作。位域的定義和位域變量的說明同結(jié)構(gòu)體定義和其成員說明位域的定義和位域變量的說明同結(jié)構(gòu)體定義和其成員說明類似,其語法格式為:類似,其語法格式為:Struct Struct 位域結(jié)構(gòu)名位域結(jié)構(gòu)名 類型說明符類型說明符 位域名位域名1 1:位域長度:位域長度 類型說明符類型說明符 位域名位域名2 2:位域長度:位域長度 類型說明符類型說明符 位域名位域名n n:位域長度:位域長度 ;關(guān)鍵字關(guān)鍵字自定義自定義int、float、char等等該位域由多少位組成該位域由多少位組成例6-1 位域定義struct bs /struct bs /定義位域定義位域bsbs in
9、t a:8; int a:8; int b:2; int b:2; int c:6; int c:6; ;struct bs bs1;struct bs bs1; / /定義定義bsbs型變量型變量bs1bs1位域也是位域也是C語言的一種數(shù)據(jù)結(jié)構(gòu),需要遵循語言的一種數(shù)據(jù)結(jié)構(gòu),需要遵循先聲明后使用的原則。例如聲明完了先聲明后使用的原則。例如聲明完了“struct struct bs bs1; bs bs1; ”才能用才能用bs型變量型變量bs1位域的定義必須位域的定義必須從右往左從右往左的順序,也就是的順序,也就是從最低位開始定義從最低位開始定義一個位域必須存儲在同一個字節(jié)中一個位域必須存儲在同
10、一個字節(jié)中,不能,不能跨兩個字節(jié)。即,如果一個字節(jié)所剩空間跨兩個字節(jié)。即,如果一個字節(jié)所剩空間不夠放另一個域時,應(yīng)該從下一個單元起不夠放另一個域時,應(yīng)該從下一個單元起存放該域。存放該域。struct bs /struct bs /定義位域定義位域bsbs int a:4; int a:4; int int : :0; /0; /空域空域 int b:5; int b:5; /從第二個字節(jié)開始存放從第二個字節(jié)開始存放 int c:3; int c:3; ;位域的長度不能大于一個字節(jié)的長度,即,位域的長度不能大于一個字節(jié)的長度,即,一個位域不能超過一個位域不能超過8位。位。位域可以無位域名,此時,
11、只用作填充或位域可以無位域名,此時,只用作填充或調(diào)整位置,無名位域不能使用調(diào)整位置,無名位域不能使用struct bs /struct bs /定義位域定義位域bsbs int a:4; int a:4; int int : :2; /2; /這兩位不能使用這兩位不能使用 int b:2; int b:2; int c:5; int c:5; int d:3; int d:3; ;以以SCIA的的通信控制寄存器通信控制寄存器SCICCR為例來說明為例來說明C語言語言用位域方法來定義寄存器用位域方法來定義寄存器STOP BITSR/W-0R/W-0R/W-0R/W-0R/W-0R/W-0R/W-
12、0R/W-0EVEN/ODD PARITYPARITYENABLELOOPBACKENAADDR/IDLEMODESCI CHAR2SCI CHAR1SCI CHAR0位位名稱名稱說明說明7STOP BITSSCI結(jié)束位的個數(shù)。該位表示發(fā)送的結(jié)束位的個數(shù),接收器只對結(jié)束位的個數(shù)。該位表示發(fā)送的結(jié)束位的個數(shù),接收器只對1個結(jié)個結(jié)束位檢查。束位檢查。1,兩個結(jié)束位;,兩個結(jié)束位;0,1個結(jié)束位個結(jié)束位6EVEN/ODD PARITY奇偶校驗位選擇。如果奇偶校驗位選擇。如果PARITY ENABLE置置1,該位決定采用偶極性或,該位決定采用偶極性或者奇極性校驗。者奇極性校驗。1,偶極性,偶極性,0,
13、奇極性,奇極性5PARITY ENABLESCI奇偶校驗使能位。奇偶校驗使能位。1,奇偶校驗使能。,奇偶校驗使能。0,奇偶校驗禁止。,奇偶校驗禁止。4LOOPBACKENA回送測試模式使能。該位能夠使能回送測試模式,此時發(fā)送引腳回送測試模式使能。該位能夠使能回送測試模式,此時發(fā)送引腳SCITXD和接收引腳和接收引腳SCIRXD在系統(tǒng)內(nèi)部連在一起。在系統(tǒng)內(nèi)部連在一起。1,使能回送測試模,使能回送測試模式功能。式功能。0,禁止回送測試模式功能,禁止回送測試模式功能3ADDR/IDLEMODESCI多處理模式控制位,該位選擇多處理器協(xié)議中的一種。多處理模式控制位,該位選擇多處理器協(xié)議中的一種。1,選
14、擇地,選擇地址位模式協(xié)議;址位模式協(xié)議;0,選擇空閑線模式協(xié)議,選擇空閑線模式協(xié)議20SCI CHAR2SCI CHAR0字符長度控制位。字符長度控制位。18位可選。長度小于八位的字符在位可選。長度小于八位的字符在SCIRXBUF和和SCIRXEMU中靠右對齊,在中靠右對齊,在SCIRXBUF中前面的位用中前面的位用0補充,補充,SCITXBUF中前面的位不需補充。對應(yīng)字符長度:中前面的位不需補充。對應(yīng)字符長度:000:長度長度1;001:長度長度2;010:長度長度3;011:長度長度4;100:長度長度5;101:長度長度6;110:長度長度7;111:長度長度8D7D0SCIA的所有寄存
15、器都是的所有寄存器都是8位的,當(dāng)一個寄存器被訪位的,當(dāng)一個寄存器被訪問時,寄存器數(shù)據(jù)位于低問時,寄存器數(shù)據(jù)位于低8位,高位,高8位為位為0。D0D2 字符長度控制位:字符長度控制位:3位位D3 SCI多處理模式控制位:多處理模式控制位:1位位D4 回送測試模式使能位:回送測試模式使能位:1位位D5 SCI奇偶校驗使能位:奇偶校驗使能位:1位位D6 奇偶校驗位選擇:奇偶校驗位選擇: 1位位D7 SCI結(jié)束位的個數(shù):結(jié)束位的個數(shù): 1位位D8D15 保留位:保留位:8位位例6-2 用位域定義SCICCRstruct SCICCR_BITSstruct SCICCR_BITS Uint16 SCIC
16、HAR:3; / D2D0 Uint16 SCICHAR:3; / D2D0 字符長度控制位字符長度控制位 Uint16 ADDRIDLE_MODE:1; / D3 Uint16 ADDRIDLE_MODE:1; / D3 多處理器模式控制位多處理器模式控制位 Uint16 LOOPBKENA:1; / D4 Uint16 LOOPBKENA:1; / D4 回送測試模式使能位回送測試模式使能位 Uint16 PARITYENA:1; / D5 Uint16 PARITYENA:1; / D5 極性使能位極性使能位 Uint16 PARITY:1; / D6 Uint16 PARITY:1;
17、/ D6 奇奇/ /偶極性選擇位偶極性選擇位 Uint16 STOPBITS:1; /D 7 Uint16 STOPBITS:1; /D 7 停止位個數(shù)停止位個數(shù) Uint16 rsvd1:8; / D15D8 Uint16 rsvd1:8; / D15D8 保留;必須定義,但不會被調(diào)用保留;必須定義,但不會被調(diào)用; ;struct SCICCR_BITS bit; / struct SCICCR_BITS bit; / 聲明聲明SCICCR_BITS SCICCR_BITS 型變量型變量bitbitbit.SCICHAR=7; /SCIbit.SCICHAR=7; /SCI字符長度控制位為字
18、符長度控制位為8 8位位與傳統(tǒng)與傳統(tǒng)#define #define 方法比較:方法比較:C C代碼訪問寄存器的傳統(tǒng)方法是使用代碼訪問寄存器的傳統(tǒng)方法是使用#define#define宏為每一個寄存器宏為每一個寄存器分配一個地址。例如:分配一個地址。例如:同樣的同樣的#define #define 方法將方法將在每個外設(shè)寄存器上不在每個外設(shè)寄存器上不斷重復(fù)。甚至對于諸如斷重復(fù)。甚至對于諸如SCI-A SCI-A 和和SCI-BSCI-B這樣完全這樣完全相同的外設(shè),每個寄存相同的外設(shè),每個寄存器都必須被一一分配地器都必須被一一分配地址。址。傳統(tǒng)傳統(tǒng)#define #define 方法有以下顯著弊端
19、:方法有以下顯著弊端:(1 1)不容易訪問寄存器中的位域部分;)不容易訪問寄存器中的位域部分;(2 2)不容易在)不容易在CCS CCS 觀察窗內(nèi)顯示位域的值;觀察窗內(nèi)顯示位域的值;(3 3)不能利用)不能利用CCS CCS 的自動完成功能;的自動完成功能;(4 4)對于重復(fù)的外設(shè),頭文件開發(fā)者不能獲得重復(fù)使用的便利)對于重復(fù)的外設(shè),頭文件開發(fā)者不能獲得重復(fù)使用的便利。注意以下幾點:注意以下幾點:(1 1)寄存器名出現(xiàn)的順序必須與它們在內(nèi)存中被安排的順序相同;)寄存器名出現(xiàn)的順序必須與它們在內(nèi)存中被安排的順序相同;(2 2)在結(jié)構(gòu)體中,通過使用保留變量()在結(jié)構(gòu)體中,通過使用保留變量(rsvd
20、1rsvd1,rsvd2 rsvd2 等)來預(yù)留等)來預(yù)留內(nèi)存中的保留位置。內(nèi)存中的保留位置。這種保留結(jié)構(gòu)僅僅用以預(yù)留內(nèi)存中的空間;這種保留結(jié)構(gòu)僅僅用以預(yù)留內(nèi)存中的空間;(3 3)Uint16 Uint16 和和Uint32 Uint32 分別是無符號分別是無符號16 16 位或者位或者32 32 位數(shù)的類型定義,位數(shù)的類型定義,在在DSP281x DSP281x 中,則用來定義中,則用來定義無符號整型和無符號長整型無符號整型和無符號長整型。這樣使。這樣使用起來就方便一些。相應(yīng)的類型定義聲明由用起來就方便一些。相應(yīng)的類型定義聲明由DSP281x_Device.h DSP281x_Device.
21、h 文文件建立。件建立。2 2)聲明可訪問寄存器的變量)聲明可訪問寄存器的變量寄存器結(jié)構(gòu)體類型可被用于聲明一個可訪問寄存器的變量,對器寄存器結(jié)構(gòu)體類型可被用于聲明一個可訪問寄存器的變量,對器件的每個外設(shè)都采用這一相同的做法,件的每個外設(shè)都采用這一相同的做法,同一種外設(shè)的復(fù)用外設(shè)可同一種外設(shè)的復(fù)用外設(shè)可以采用同樣的結(jié)構(gòu)體類型定義以采用同樣的結(jié)構(gòu)體類型定義。例如,如果一個器件上有。例如,如果一個器件上有3 3 個個CPU-TimersCPU-Timers,可以創(chuàng)建如下所示的,可以創(chuàng)建如下所示的3 3 個具有個具有“struct struct CPUTIMER_REGS”CPUTIMER_REGS”
22、結(jié)構(gòu)體類型的變量。結(jié)構(gòu)體類型的變量。例6-3 SCICCR的共同體定義結(jié)構(gòu)體變量不能作為一個整體進(jìn)行輸入、輸出結(jié)構(gòu)體變量不能作為一個整體進(jìn)行輸入、輸出。如果需要對整。如果需要對整個寄存器進(jìn)行操作,位域操作就過于復(fù)雜,這時考慮到共同體,個寄存器進(jìn)行操作,位域操作就過于復(fù)雜,這時考慮到共同體,可以進(jìn)行整體操作和位操作二選一的方式。可以進(jìn)行整體操作和位操作二選一的方式。共同體(公用體):把幾種不同類型的變量放在同一段內(nèi)存單共同體(公用體):把幾種不同類型的變量放在同一段內(nèi)存單元中。變量在內(nèi)存中所占字節(jié)數(shù)不同,但都從同一地址開始存元中。變量在內(nèi)存中所占字節(jié)數(shù)不同,但都從同一地址開始存放。也就是采用覆蓋
23、技術(shù),幾個變量相互覆蓋。放。也就是采用覆蓋技術(shù),幾個變量相互覆蓋。共同體類型變量定義形式:共同體類型變量定義形式:union union 共同體名共同體名 成員表列成員表列 ;例6-3 SCICCR的共同體定義union SCICCR_REG union SCICCR_REG Uint16 all; / Uint16 all; /可實現(xiàn)對寄存器整體操作可實現(xiàn)對寄存器整體操作 struct SCICCR_BITS bit; /struct SCICCR_BITS bit; /可實現(xiàn)位操作可實現(xiàn)位操作; ;union SCICCR_REG SCICCRunion SCICCR_REG SCICCR
24、; / /聲明聲明 一個共同體一個共同體SCICCRSCICCRSCICCR.all=0 x007F;SCICCR.all=0 x007F;SCICCR.bit.SCICHAR=5;SCICCR.bit.SCICHAR=5;關(guān)鍵字關(guān)鍵字struct SCI_REGS struct SCI_REGS union SCICCR_REG SCICCR; / union SCICCR_REG SCICCR; /通信控制寄存器通信控制寄存器 union SCICTL1_REG SCICTL1; / union SCICTL1_REG SCICTL1; / 控制寄存器控制寄存器1 1 Uint16 SCI
25、HBAUD; / Uint16 SCIHBAUD; / 波特率寄存器波特率寄存器( (高字節(jié)高字節(jié)) ) Uint16 SCILBAUD; / Uint16 SCILBAUD; / 波特率寄存器波特率寄存器( (低字節(jié)低字節(jié)) ) union SCICTL2_REG SCICTL2; / union SCICTL2_REG SCICTL2; / 控制寄存器控制寄存器2 2 union SCIRXST_REG SCIRXST; / union SCIRXST_REG SCIRXST; / 接收狀態(tài)寄存器接收狀態(tài)寄存器 Uint16 SCIRXEMU; / Uint16 SCIRXEMU; / 接
26、收仿真緩沖寄存器接收仿真緩沖寄存器 union SCIRXBUF_REG SCIRXBUF; / union SCIRXBUF_REG SCIRXBUF; / 接收數(shù)據(jù)寄存器接收數(shù)據(jù)寄存器 Uint16 rsvd1; Uint16 rsvd1; / / 保留保留 Uint16 SCITXBUF; / Uint16 SCITXBUF; / 發(fā)送數(shù)據(jù)緩沖寄存器發(fā)送數(shù)據(jù)緩沖寄存器 union SCIFFTX_REG SCIFFTX; / FIFO union SCIFFTX_REG SCIFFTX; / FIFO 發(fā)送寄存器發(fā)送寄存器 union SCIFFRX_REG SCIFFRX; / FIF
27、O union SCIFFRX_REG SCIFFRX; / FIFO 接收寄存器接收寄存器 union SCIFFCT_REG SCIFFCT; / FIFO union SCIFFCT_REG SCIFFCT; / FIFO 控制寄存器控制寄存器 Uint16 rsvd2; Uint16 rsvd2; / / 保留保留 Uint16 rsvd3; Uint16 rsvd3; / / 保留保留 union SCIPRI_REG SCIPRI; / FIFO union SCIPRI_REG SCIPRI; / FIFO 優(yōu)先級控制寄存器優(yōu)先級控制寄存器 ; ;extern volatile
28、struct SCI_REGS extern volatile struct SCI_REGS SciaRegsSciaRegs; ;extern volatile struct SCI_REGS extern volatile struct SCI_REGS ScibRegsScibRegs; ;例6-4 創(chuàng)建SCI寄存器的結(jié)構(gòu)體文件寄存器名寄存器名SCICCRSCICTL1SCIHBAUDSCILBAUDSCICTL2SCIRXSTSCIRXEMUSCIRXBUFSCITXBUFSCIFFTXSCIFFRXSCIFFCTSCIPRI關(guān)鍵字。外部的關(guān)鍵字。外部的關(guān)鍵字。易變的關(guān)鍵字。易變的/
29、 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *文件名:文件名:DSP28_Sci.hDSP28_Sci.h* *功功 能:能:2812 SCI2812 SCI模塊寄存器的定義模塊寄存器的定義* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
30、 * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ /#ifndef DSP28_SCI_H#ifndef DSP28_SCI_H#define DSP28_SCI_H#define DSP28_SCI_H struct struct SCICCRSCICCR_BITS / bit description_BITS / bit description Uint16 SCICHAR:3; / 2:0 Character length control Uint16 SCICHAR:3
31、; / 2:0 Character length control Uint16 ADDRIDLE_MODE:1; / 3 ADDR/IDLE Mode control Uint16 ADDRIDLE_MODE:1; / 3 ADDR/IDLE Mode control Uint16 LOOPBKENA:1; / 4 Loop Back enable Uint16 LOOPBKENA:1; / 4 Loop Back enable Uint16 PARITYENA:1; / 5 Parity enable Uint16 PARITYENA:1; / 5 Parity enable Uint16
32、PARITY:1; / 6 Even or Odd Parity Uint16 PARITY:1; / 6 Even or Odd Parity Uint16 STOPBITS:1; / 7 Number of Stop Bits Uint16 STOPBITS:1; / 7 Number of Stop Bits Uint16 rsvd1:8; / 15:8 reserved; Uint16 rsvd1:8; / 15:8 reserved; union SCICCR_REG union SCICCR_REG Uint16 all; Uint16 all; struct SCICCR_BIT
33、S bit; struct SCICCR_BITS bit; 位域方式定義位域方式定義SCICCRSCICCR寄存器寄存器定義共同體定義共同體SCICCRSCICCR寄存器寄存器struct struct SCICTL1SCICTL1_BITS / bit description_BITS / bit description Uint16 RXENA:1; / 0 SCI receiver enable Uint16 RXENA:1; / 0 SCI receiver enable Uint16 TXENA:1; / 1 SCI transmitter enable Uint16 TXENA:
34、1; / 1 SCI transmitter enable Uint16 SLEEP:1; / 2 SCI sleep Uint16 SLEEP:1; / 2 SCI sleep Uint16 TXWAKE:1; / 3 Transmitter wakeup method Uint16 TXWAKE:1; / 3 Transmitter wakeup method Uint16 rsvd:1; / 4 reserved Uint16 rsvd:1; / 4 reserved Uint16 SWRESET:1; / 5 Software reset Uint16 SWRESET:1; / 5 S
35、oftware reset Uint16 RXERRINTENA:1; / 6 Recieve interrupt enable Uint16 RXERRINTENA:1; / 6 Recieve interrupt enable Uint16 rsvd1:9; / 15:7 reserved Uint16 rsvd1:9; / 15:7 reserved; ; union SCICTL1_REG union SCICTL1_REG Uint16 all; Uint16 all; struct SCICTL1_BITS bit; struct SCICTL1_BITS bit; ;位域方式定義
36、位域方式定義SCICTL1SCICTL1寄存器寄存器定義共同體定義共同體SCICTL1SCICTL1寄存器寄存器struct SCICTL2_BITS / bit descriptionstruct SCICTL2_BITS / bit description Uint16 TXINTENA:1; / 0 Transmit interrupt enable Uint16 TXINTENA:1; / 0 Transmit interrupt enable Uint16 RXBKINTENA:1; / 1 Receiver-buffer break enable Uint16 RXBKINTENA
37、:1; / 1 Receiver-buffer break enable Uint16 rsvd:4; / 5:2 reserved Uint16 rsvd:4; / 5:2 reserved Uint16 TXEMPTY:1; / 6 Transmitter empty flag Uint16 TXEMPTY:1; / 6 Transmitter empty flag Uint16 TXRDY:1; / 7 Transmitter ready flag Uint16 TXRDY:1; / 7 Transmitter ready flag Uint16 rsvd1:8; / 15:8 rese
38、rved Uint16 rsvd1:8; / 15:8 reserved; ; union SCICTL2_REG union SCICTL2_REG Uint16 all; Uint16 all; struct SCICTL2_BITS bit; struct SCICTL2_BITS bit; ;位域方式定義位域方式定義SCICTL2SCICTL2寄存器寄存器定義共同體定義共同體SCICTL1SCICTL1寄存器寄存器struct SCIRXST_BITS / bit descriptionstruct SCIRXST_BITS / bit description Uint16 rsvd:
39、1; / 0 reserved Uint16 rsvd:1; / 0 reserved Uint16 RXWAKE:1; / 1 Receiver wakeup detect flag Uint16 RXWAKE:1; / 1 Receiver wakeup detect flag Uint16 PE:1; / 2 Parity error flag Uint16 PE:1; / 2 Parity error flag Uint16 OE:1; / 3 Overrun error flag Uint16 OE:1; / 3 Overrun error flag Uint16 FE:1; / 4
40、 Framing error flag Uint16 FE:1; / 4 Framing error flag Uint16 BRKDT:1; / 5 Break-detect flag Uint16 BRKDT:1; / 5 Break-detect flag Uint16 RXRDY:1; / 6 Receiver ready flag Uint16 RXRDY:1; / 6 Receiver ready flag Uint16 RXERR:1; / 7 Receiver error flag Uint16 RXERR:1; / 7 Receiver error flag; ; union
41、 SCIRXST_REGunion SCIRXST_REG Uint16 all; Uint16 all; struct SCIRXST_BITS bit; struct SCIRXST_BITS bit; ;位域方式定義位域方式定義SCIRXSTSCIRXST寄存寄存器器定義共同體定義共同體SCICTL1SCICTL1寄存器寄存器struct SCIRXBUF_BITS struct SCIRXBUF_BITS / bits description / bits description Uint16 RXDT:8; / 7:0 Receive word Uint16 RXDT:8; / 7:
42、0 Receive word Uint16 rsvd:6; / 13:8 reserved Uint16 rsvd:6; / 13:8 reserved Uint16 SCIFFPE:1; / 14 SCI PE error in FIFO mode Uint16 SCIFFPE:1; / 14 SCI PE error in FIFO mode Uint16 SCIFFFE:1; / 15 SCI FE error in FIFO mode Uint16 SCIFFFE:1; / 15 SCI FE error in FIFO mode; ;union SCIRXBUF_REG union
43、SCIRXBUF_REG Uint16 all; Uint16 all; struct SCIRXBUF_BITS bit; struct SCIRXBUF_BITS bit; ;位域方式定義位域方式定義SCIRXBUFSCIRXBUF寄寄存器存器定義共同體定義共同體SCIRXBUFSCIRXBUF寄寄存器存器struct SCIPRI_BITS / bit descriptionstruct SCIPRI_BITS / bit description Uint16 rsvd:3; / 2:0 reserved Uint16 rsvd:3; / 2:0 reserved Uint16 FREE
44、:1; / 3 Free emulation suspend mode Uint16 FREE:1; / 3 Free emulation suspend mode Uint16 SOFT:1; / 4 Soft emulation suspend mode Uint16 SOFT:1; / 4 Soft emulation suspend mode Uint16 rsvd1:3; / 7:5 reserved Uint16 rsvd1:3; / 7:5 reserved; ; union SCIPRI_REG union SCIPRI_REG Uint16 all; Uint16 all;
45、struct SCIPRI_BITS bit; struct SCIPRI_BITS bit; ;位域方式定義位域方式定義SCIPRISCIPRI寄存器寄存器定義共同體定義共同體SCIPRISCIPRI寄存器寄存器struct SCIFFTX_BITS struct SCIFFTX_BITS / bit description / bit description Uint16 TXFFILIL:5; / 4:0 Interrupt level Uint16 TXFFILIL:5; / 4:0 Interrupt level Uint16 TXFFIENA:1; / 5 Interrupt en
46、able Uint16 TXFFIENA:1; / 5 Interrupt enable Uint16 TXINTCLR:1; / 6 Clear INT flag Uint16 TXINTCLR:1; / 6 Clear INT flag Uint16 TXFFINT:1; / 7 INT flag Uint16 TXFFINT:1; / 7 INT flag Uint16 TXFFST:5; / 12:8 FIFO status Uint16 TXFFST:5; / 12:8 FIFO status Uint16 TXFIFOXRESET:1; / 13 FIFO reset Uint16
47、 TXFIFOXRESET:1; / 13 FIFO reset Uint16 SCIFFENA:1; / 14 Enhancement enable Uint16 SCIFFENA:1; / 14 Enhancement enable Uint16 resvd:1; / 15 reserved Uint16 resvd:1; / 15 reserved; ; union SCIFFTX_REG union SCIFFTX_REG Uint16 all; Uint16 all; struct SCIFFTX_BITS bit; struct SCIFFTX_BITS bit; ;位域方式定義位
48、域方式定義SCIFFTXSCIFFTX寄存寄存器器定義共同體定義共同體SCIFFTXSCIFFTX寄存器寄存器struct SCIFFRX_BITS / bits descriptionstruct SCIFFRX_BITS / bits description Uint16 RXFFIL:5; / 4:0 Interrupt level Uint16 RXFFIL:5; / 4:0 Interrupt level Uint16 RXFFIENA:1; / 5 Interrupt enable Uint16 RXFFIENA:1; / 5 Interrupt enable Uint16 RXF
49、FINTCLR:1; / 6 Clear INT flag Uint16 RXFFINTCLR:1; / 6 Clear INT flag Uint16 RXFFINT:1; / 7 INT flag Uint16 RXFFINT:1; / 7 INT flag Uint16 RXFIFST:5; / 12:8 FIFO status Uint16 RXFIFST:5; / 12:8 FIFO status Uint16 RXFIFORESET:1; / 13 FIFO reset Uint16 RXFIFORESET:1; / 13 FIFO reset Uint16 RXOVF_CLR:1
50、; / 14 Clear overflow Uint16 RXOVF_CLR:1; / 14 Clear overflow Uint16 RXFFOVF:1; / 15 FIFO overflow Uint16 RXFFOVF:1; / 15 FIFO overflow; ; union SCIFFRX_REGunion SCIFFRX_REG Uint16 all; Uint16 all; struct SCIFFRX_BITS bit; struct SCIFFRX_BITS bit; ;位域方式定義位域方式定義SCIFFRXSCIFFRX寄存寄存器器定義共同體定義共同體SCIFFRXSC
51、IFFRX寄存器寄存器struct SCIFFCT_BITS / bits descriptionstruct SCIFFCT_BITS / bits description Uint16 FFTXDLY:8; / 7:0 FIFO transmit delay Uint16 FFTXDLY:8; / 7:0 FIFO transmit delay Uint16 rsvd:5; / 12:8 reserved Uint16 rsvd:5; / 12:8 reserved Uint16 CDC:1; / 13 Auto baud mode enable Uint16 CDC:1; / 13 Au
52、to baud mode enable Uint16 ABDCLR:1; / 14 Auto baud clear Uint16 ABDCLR:1; / 14 Auto baud clear Uint16 ABD:1; / 15 Auto baud detect Uint16 ABD:1; / 15 Auto baud detect; ;union SCIFFCT_REG union SCIFFCT_REG Uint16 all; Uint16 all; struct SCIFFCT_BITS bit; struct SCIFFCT_BITS bit; ;位域方式定義位域方式定義SCIFFCT
53、SCIFFCT寄存寄存器器定義共同體定義共同體SCIFFCTSCIFFCT寄存器寄存器struct SCI_REGS struct SCI_REGS union SCICCR_REG SCICCR; / Communications control register union SCICCR_REG SCICCR; / Communications control register union SCICTL1_REG SCICTL1; / Control register 1 union SCICTL1_REG SCICTL1; / Control register 1 Uint16 SCIH
54、BAUD; / Baud rate (high) registerUint16 SCIHBAUD; / Baud rate (high) register Uint16 SCILBAUD; / Baud rate (low) register Uint16 SCILBAUD; / Baud rate (low) register union SCICTL2_REG SCICTL2; / Control register 2 union SCICTL2_REG SCICTL2; / Control register 2 union SCIRXST_REG SCIRXST; / Recieve s
55、tatus register union SCIRXST_REG SCIRXST; / Recieve status register Uint16 SCIRXEMU; / Recieve emulation buffer registerUint16 SCIRXEMU; / Recieve emulation buffer register union SCIRXBUF_REG SCIRXBUF; / Recieve data buffer union SCIRXBUF_REG SCIRXBUF; / Recieve data buffer Uint16 rsvd1; / reserved
56、Uint16 rsvd1; / reserved Uint16 SCITXBUF; Uint16 SCITXBUF; / Transmit data buffer / Transmit data buffer union SCIFFTX_REG SCIFFTX; / FIFO transmit register union SCIFFTX_REG SCIFFTX; / FIFO transmit register union SCIFFRX_REG SCIFFRX; / FIFO recieve register union SCIFFRX_REG SCIFFRX; / FIFO reciev
57、e register union SCIFFCT_REG SCIFFCT; / FIFO control register union SCIFFCT_REG SCIFFCT; / FIFO control register Uint16 rsvd2; / reserved Uint16 rsvd2; / reserved Uint16 rsvd3; / reserved Uint16 rsvd3; / reserved union SCIPRI_REG SCIPRI; / FIFO Priority control union SCIPRI_REG SCIPRI; / FIFO Priori
58、ty control ; ;extern volatile struct SCI_REGS extern volatile struct SCI_REGS SciaRegs;SciaRegs;extern volatile struct SCI_REGS Sextern volatile struct SCI_REGS ScibRegscibRegs; ;#endif #endif /=/=/ No more./ No more./=/=例6-5 對SCICCR按位進(jìn)行操作SciaRegs.SCICCR.bit.STOPBITS=0; /1SciaRegs.SCICCR.bit.STOPBIT
59、S=0; /1位停止位位停止位SciaRegs.SCICCR.bit.PARITYENA=0; /SciaRegs.SCICCR.bit.PARITYENA=0; /禁止極性校驗功能禁止極性校驗功能SciaRegs.SCICCR.bit.LOOPBKENA=0; /SciaRegs.SCICCR.bit.LOOPBKENA=0; /禁止回送測試模式功能禁止回送測試模式功能SciaRegs.SCICCR.bit.ADDRIDLE_MODE=0; /SciaRegs.SCICCR.bit.ADDRIDLE_MODE=0; /空閑線模式空閑線模式SciaRegs.SCICCR.bit.SCICHAR
60、=7; /8SciaRegs.SCICCR.bit.SCICHAR=7; /8位數(shù)據(jù)位位數(shù)據(jù)位操作方法操作方法1例6-6 對SCICCR整體進(jìn)行操作SciaRegs.SCICCR.all=0 x0007;SciaRegs.SCICCR.all=0 x0007;操作方法操作方法2例6-7 對SCIHBAUD和SCILBAUD進(jìn)行操作SciaRegs.SCIHBAUD=0;SciaRegs.SCIHBAUD=0;SciaRegs.SCILBAUD=0 xF3;SciaRegs.SCILBAUD=0 xF3;SCIHBAUDSCIHBAUD和和SCILBAUDSCILBAUD在結(jié)構(gòu)體中定義是在結(jié)構(gòu)體
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年國家科技進(jìn)步獎
- 老人安全合同協(xié)議書范本
- 酒店團(tuán)住合同協(xié)議書
- 大連汽車線束項目投資分析報告模板參考
- 全屋裝修合同協(xié)議書
- 家具安裝合作合同協(xié)議書
- 2025年智能安防監(jiān)控設(shè)備的低照度成像與智能分析技術(shù)升級項目可行性研究報告
- 買賣鴿子合同協(xié)議書范本
- 2025秋五年級語文上冊統(tǒng)編版-【語文園地二】交互課件
- 如何簽訂裝修合同協(xié)議書
- 品三國論領(lǐng)導(dǎo)藝術(shù)智慧樹知到期末考試答案2024年
- 河南省2022漢字大賽題庫
- JJF 2096-2024 軟包裝件密封性試驗儀校準(zhǔn)規(guī)范
- 2023年湖北宜昌高新區(qū)社區(qū)專職工作人員(網(wǎng)格員)招聘考試真題及答案
- 2024年江蘇省知識產(chǎn)權(quán)競賽參考試題庫(含答案)
- 《導(dǎo)數(shù)及其概念》課件
- 消防安全保密協(xié)議
- 工業(yè)自動化中的人機協(xié)同生產(chǎn)與智能制造
- 鱗片防腐操作技術(shù)方案
- 消化性潰瘍基層診療指南(2023年)重點內(nèi)容
- 小學(xué)英語面試試講(六大課型)
評論
0/150
提交評論