MSP430異步串行通信_(tái)第1頁(yè)
MSP430異步串行通信_(tái)第2頁(yè)
MSP430異步串行通信_(tái)第3頁(yè)
MSP430異步串行通信_(tái)第4頁(yè)
MSP430異步串行通信_(tái)第5頁(yè)
已閱讀5頁(yè),還剩46頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、異步串行通信異步串行通信內(nèi)容提要內(nèi)容提要通信的基本知識(shí)通信的基本知識(shí)UART通信通信UART應(yīng)用應(yīng)用IrDA通信通信一、概述一、概述 分為同步通信與異步通信分為同步通信與異步通信異步通信:通信雙方按照事先約定好的時(shí)鐘速率來(lái)異步通信:通信雙方按照事先約定好的時(shí)鐘速率來(lái)進(jìn)行通信,沒(méi)有公共的時(shí)鐘線。進(jìn)行通信,沒(méi)有公共的時(shí)鐘線。同步通信:雙方擁有公共時(shí)鐘,按時(shí)鐘信號(hào)來(lái)更新同步通信:雙方擁有公共時(shí)鐘,按時(shí)鐘信號(hào)來(lái)更新數(shù)據(jù)。數(shù)據(jù)。分為單工、全雙工、半雙工分為單工、全雙工、半雙工發(fā)送器發(fā)送器接收器接收器AB發(fā)送器發(fā)送器發(fā)送器發(fā)送器接收器接收器接收器接收器需要兩根數(shù)據(jù)線需要兩根數(shù)據(jù)線單工方式單工方式全雙工方式

2、全雙工方式發(fā)送器發(fā)送器接收器接收器接收器接收器發(fā)送器發(fā)送器發(fā)送器發(fā)送器接收器接收器接收器接收器發(fā)送器發(fā)送器半雙工方式半雙工方式并行通信的數(shù)據(jù)線并行通信的數(shù)據(jù)線 n時(shí)鐘時(shí)鐘CLKn數(shù)據(jù)數(shù)據(jù)D0-D7n讀寫(xiě)控制位讀寫(xiě)控制位R/Wn數(shù)據(jù)地址控制位數(shù)據(jù)地址控制位串行通信的數(shù)據(jù)線(串行通信的數(shù)據(jù)線(3 3線通信)線通信) n1根時(shí)鐘線根時(shí)鐘線n1根發(fā)送線根發(fā)送線n1根接收線根接收線1.UART1.UART兩線:異步兩線:異步+ +全雙工全雙工 = = 慢慢+ +可以多主機(jī)可以多主機(jī)2.SPI2.SPI三線:同步三線:同步+ +全雙工全雙工 = = 快快+ +不能多主機(jī)(再加數(shù)不能多主機(jī)(再加數(shù)據(jù)線才行)

3、據(jù)線才行)3.I2C3.I2C兩線:同步兩線:同步+ +半雙工半雙工 = = 慢慢+ +可以多主機(jī)可以多主機(jī)串行通信協(xié)議的分類(lèi)串行通信協(xié)議的分類(lèi) SPI:高速同步串行口。:高速同步串行口。34線接口,收發(fā)獨(dú)立、可同步進(jìn)行線接口,收發(fā)獨(dú)立、可同步進(jìn)行UART:通用異步串行口。按照標(biāo)準(zhǔn)波特率完成雙向通訊,速度慢:通用異步串行口。按照標(biāo)準(zhǔn)波特率完成雙向通訊,速度慢UART是用于控制計(jì)算機(jī)與串行設(shè)備的芯片。有一點(diǎn)要注意的是,它是用于控制計(jì)算機(jī)與串行設(shè)備的芯片。有一點(diǎn)要注意的是,它提供了提供了RS-232C數(shù)據(jù)終端設(shè)備接口,這樣計(jì)算機(jī)就可以和調(diào)制解調(diào)器數(shù)據(jù)終端設(shè)備接口,這樣計(jì)算機(jī)就可以和調(diào)制解調(diào)器或其它

4、使用或其它使用RS-232C接口的串行設(shè)備通信了。接口的串行設(shè)備通信了。UART還提供以下功能:還提供以下功能:將由計(jì)算機(jī)內(nèi)部傳送過(guò)來(lái)的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流。將計(jì)將由計(jì)算機(jī)內(nèi)部傳送過(guò)來(lái)的并行數(shù)據(jù)轉(zhuǎn)換為輸出的串行數(shù)據(jù)流。將計(jì)算機(jī)外部來(lái)的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計(jì)算機(jī)內(nèi)部使用并行數(shù)據(jù)的器算機(jī)外部來(lái)的串行數(shù)據(jù)轉(zhuǎn)換為字節(jié),供計(jì)算機(jī)內(nèi)部使用并行數(shù)據(jù)的器件使用。件使用。I2C: 能用于替代標(biāo)準(zhǔn)的并行總線,能連接的各種集成電路和功能模塊。能用于替代標(biāo)準(zhǔn)的并行總線,能連接的各種集成電路和功能模塊。I2C是多主控總線,所以任何一個(gè)設(shè)備都能像主控器一樣工作,并控是多主控總線,所以任何一個(gè)設(shè)備都能像主控器一

5、樣工作,并控制總線??偩€上每一個(gè)設(shè)備都有一個(gè)獨(dú)一無(wú)二的地址,根據(jù)設(shè)備它們制總線??偩€上每一個(gè)設(shè)備都有一個(gè)獨(dú)一無(wú)二的地址,根據(jù)設(shè)備它們自己的能力,它們可以作為發(fā)射器或接收器工作。多路微控制器能在自己的能力,它們可以作為發(fā)射器或接收器工作。多路微控制器能在同一個(gè)同一個(gè)I2C總線上共存。總線上共存。IEEE488定義并行通行狀態(tài)時(shí),規(guī)定設(shè)備線總常不得超過(guò)定義并行通行狀態(tài)時(shí),規(guī)定設(shè)備線總常不得超過(guò)20米,并且米,并且任意兩個(gè)設(shè)備間的長(zhǎng)度不得超過(guò)任意兩個(gè)設(shè)備間的長(zhǎng)度不得超過(guò)2米;而對(duì)于串口而言,長(zhǎng)度可達(dá)米;而對(duì)于串口而言,長(zhǎng)度可達(dá)1200米。米。I2C線更少,比線更少,比UART、SPI更為強(qiáng)大,但是技

6、術(shù)上也更加麻煩些,更為強(qiáng)大,但是技術(shù)上也更加麻煩些,因?yàn)橐驗(yàn)镮2C需要有雙向需要有雙向IO的支持,而且使用上拉電阻,抗干擾能力較的支持,而且使用上拉電阻,抗干擾能力較弱,一般用于同一板卡上芯片之間的通信,較少用于遠(yuǎn)距離通信。弱,一般用于同一板卡上芯片之間的通信,較少用于遠(yuǎn)距離通信。SPI實(shí)現(xiàn)要簡(jiǎn)單一些,實(shí)現(xiàn)要簡(jiǎn)單一些,UART需要固定的波特率,就是說(shuō)兩位數(shù)據(jù)的需要固定的波特率,就是說(shuō)兩位數(shù)據(jù)的間隔要相等,而間隔要相等,而SPI則無(wú)所謂,因?yàn)樗怯袝r(shí)鐘的協(xié)議。則無(wú)所謂,因?yàn)樗怯袝r(shí)鐘的協(xié)議。I2C的速度比的速度比SPI慢一點(diǎn),協(xié)議比慢一點(diǎn),協(xié)議比SPI復(fù)雜一點(diǎn),但是連線也比標(biāo)準(zhǔn)復(fù)雜一點(diǎn),但是連線

7、也比標(biāo)準(zhǔn)的的SPI要少。要少。牛人的建議:牛人的建議:UART:UART:通用異步收發(fā)器的縮寫(xiě),一般簡(jiǎn)稱(chēng)為串口。通用異步收發(fā)器的縮寫(xiě),一般簡(jiǎn)稱(chēng)為串口。 Universal Asynchronous Receive/Transmit有兩根數(shù)據(jù)線:發(fā)送有兩根數(shù)據(jù)線:發(fā)送TxTx和接收和接收RxRx。不需要時(shí)鐘線,全雙工工作。不需要時(shí)鐘線,全雙工工作。二、二、UART原理原理 UARTUART雙機(jī)通信雙機(jī)通信UARTUART多機(jī)通信多機(jī)通信波特率是指:?jiǎn)纹瑱C(jī)或計(jì)算機(jī)在串口通信時(shí)的速率。波特率是指:?jiǎn)纹瑱C(jī)或計(jì)算機(jī)在串口通信時(shí)的速率。指的是信號(hào)被調(diào)制以后在單位時(shí)間內(nèi)的變化,即單位時(shí)間內(nèi)載波參數(shù)指的是信號(hào)

8、被調(diào)制以后在單位時(shí)間內(nèi)的變化,即單位時(shí)間內(nèi)載波參數(shù)變化的次數(shù)。變化的次數(shù)。如每秒鐘傳送如每秒鐘傳送240240個(gè)字符,而每個(gè)字符格式包含個(gè)字符,而每個(gè)字符格式包含1010位(位(1 1個(gè)起始位,個(gè)起始位,1 1個(gè)個(gè)停止位,停止位,8 8個(gè)數(shù)據(jù)位),這時(shí)的波特率為個(gè)數(shù)據(jù)位),這時(shí)的波特率為240Bd240Bd,比特率為比特率為1010位位* *240240個(gè)個(gè)/ /秒秒=2400bps=2400bps。又比如每秒鐘傳送又比如每秒鐘傳送240240個(gè)二進(jìn)制位,這時(shí)的波特率為個(gè)二進(jìn)制位,這時(shí)的波特率為240Bd240Bd,比特率也是比特率也是240bps240bps。波特率,可以通俗的理解為波特率,

9、可以通俗的理解為一個(gè)設(shè)備在一秒鐘內(nèi)發(fā)送(或接收)了一個(gè)設(shè)備在一秒鐘內(nèi)發(fā)送(或接收)了多少碼元的數(shù)據(jù)多少碼元的數(shù)據(jù)。它是對(duì)符號(hào)傳輸速率的一種度量,它是對(duì)符號(hào)傳輸速率的一種度量,1 1波特即指每秒傳輸波特即指每秒傳輸1 1個(gè)碼元符號(hào)個(gè)碼元符號(hào)(通過(guò)不同的調(diào)制方式,可以在一個(gè)碼元符號(hào)上負(fù)載多個(gè)(通過(guò)不同的調(diào)制方式,可以在一個(gè)碼元符號(hào)上負(fù)載多個(gè)bitbit位信息),位信息),1 1比特每秒是指每秒傳輸比特每秒是指每秒傳輸1 1比特(比特(bitbit)。波特率和比特率:波特率和比特率:波特率的計(jì)算波特率的計(jì)算1.1.設(shè)置波特率時(shí)要選擇合適的時(shí)鐘源設(shè)置波特率時(shí)要選擇合適的時(shí)鐘源較低的波特率,一般是小于等

10、于較低的波特率,一般是小于等于96009600,可選擇,可選擇ACLKACLK大于大于96009600,要選用,要選用SMCLKSMCLK。(因?yàn)椴ㄌ芈拾l(fā)生器分頻系數(shù)要求大于(因?yàn)椴ㄌ芈拾l(fā)生器分頻系數(shù)要求大于3 3)2.2.UCAxBRUCAxBR1 1和和UCAxBR0UCAxBR0、UCAxMCTLUCAxMCTL的設(shè)置的設(shè)置 N = fBRCLK/Baudrate N = fBRCLK/Baudrate如果如果N N等于或大于等于或大于1616,可以設(shè)置,可以設(shè)置UCOS16UCOS16=1=1為高頻模式為高頻模式在低頻模式下:在低頻模式下: UCBRx = INT(N) UCBRx =

11、 INT(N) UCBRSx = round( ( N INT(N) ) UCBRSx = round( ( N INT(N) ) 8 ) 8 ) UCAxMCTL:UCAxMCTL:例例1 1:1048576Hz1048576Hz頻率下驅(qū)動(dòng)以頻率下驅(qū)動(dòng)以115200115200波特率異步通訊波特率異步通訊( (ACLK = 32768Hz, MCLK = SMCLK = 1048576HzACLK = 32768Hz, MCLK = SMCLK = 1048576Hz。) ) N = 1048576/115200 = 9.10 UCBRx = INT(N) = INT(9.10) = 9 U

12、CBRSx = round(NINT(N)8) = round(9.109) 8)=round(0.8)=1 UCA0CTL1 |= UCSSEL_2;/ 選選SMCLK為時(shí)鐘為時(shí)鐘 UCAxBR0 = 9; UCAxBR1 = 0; UCAxMCTL| = UCBRS_1; 例例2 2:32768Hz32768Hz頻率下驅(qū)動(dòng)以頻率下驅(qū)動(dòng)以24002400波特率異步通信。波特率異步通信。 ACLK=32768Hz, MCLK = SMCLK = 1.045MHz ACLK=32768Hz, MCLK = SMCLK = 1.045MHz N = 32768/2400 = 13.65 UCBRx

13、 = INT(N) = INT(13.65) = 13 UCBRSx = round( ( NINT(N) )8 ) =round(13.6513) 8)=round(5.2)=5 UCA0CTL1 |= UCSSEL_1; / 選選ACLK為時(shí)鐘為時(shí)鐘UCAxBR0 = 13;UCAxBR1 = 0 ;UCAxMCTL| = UCBRS_5; 在過(guò)采樣下在過(guò)采樣下( (Oversampling Baud Rate ModeOversampling Baud Rate Mode) ): UCBRx = INT(N UCBRx = INT(N/16/16) ) UCBRFx = round( (

14、 (N/16) INT(N/16) ) UCBRFx = round( ( (N/16) INT(N/16) ) 16 ) 16 ) UCAxMCTL:UCAxMCTL:例例3 3:1048576Hz:1048576Hz頻率下驅(qū)動(dòng)以頻率下驅(qū)動(dòng)以96009600波特率異步通訊波特率異步通訊 UCBRx = INT(N/16)=INT(fBRCLK/Baudrate/16) UCBRx = INT(1048576Hz/(16*9600) = INT(6.8) UCBRFx = round( ( (N/16) INT(N/16) ) 16 ) = round( ( 6.8 6 ) 16 )=13 U

15、CAxCTL1 |= UCSSEL_2; / 選選SMCLK為時(shí)鐘為時(shí)鐘 UCAxBR0 = 6; / 1MHz 9600 UCAxBR1 = 0; / 1MHz 9600 UCAxMCTL |= UCBRF_13 + UCOS16; /7-4:UCBRFx,3-1:UCBRSx,0:UCOS161.USCI_A1.USCI_A模塊模塊 UARTUART、LINLIN、IrDAIrDA、SPISPI模式模式2.USCI_B2.USCI_B模塊模塊 SPISPI、I2CI2C模式模式三、三、MSP430G2553UART USCIUSCI模塊初始化模塊初始化1.設(shè)置設(shè)置UCSWRST=12.初始

16、化所有的初始化所有的USCI寄存器寄存器3.配置端口配置端口4.軟件清除軟件清除UCSWRST5.設(shè)置設(shè)置UCRXIE或或UCTXIE 使能中斷使能中斷void USCI_A0_graceInit(void) UCA0CTL1 |= UCSWRST; UCA0CTL1 = UCSSEL_2;/設(shè)時(shí)鐘設(shè)時(shí)鐘 UCA0MCTL = UCBRF_0 + UCBRS_1;/配置波特率配置波特率 UCA0BR0 = 104; /配置波特率配置波特率 UCA0CTL1 &= UCSWRST; 1.1.用用GraceGrace將將USCI_A0USCI_A0模塊配置為模塊配置為UARTUART模式,并模式,

17、并初始化。初始化。2.2.向向UCA0TXBUFUCA0TXBUF里扔數(shù)據(jù),自動(dòng)將數(shù)據(jù)發(fā)送出去。里扔數(shù)據(jù),自動(dòng)將數(shù)據(jù)發(fā)送出去。當(dāng)當(dāng)UCA0TXBUFUCA0TXBUF為空時(shí),觸發(fā)為空時(shí),觸發(fā)UCA0TXIFGUCA0TXIFG中斷標(biāo)中斷標(biāo)志位,表明可以向志位,表明可以向UCA0TXBUFUCA0TXBUF里扔下一個(gè)數(shù)據(jù)。里扔下一個(gè)數(shù)據(jù)。3.UCA0RXBUF3.UCA0RXBUF接收到完整數(shù)據(jù)后,觸發(fā)接收到完整數(shù)據(jù)后,觸發(fā)UCA0RXIFGUCA0RXIFG中斷標(biāo)志位,表明中斷標(biāo)志位,表明CPUCPU應(yīng)盡快將應(yīng)盡快將UCA0RXBUFUCA0RXBUF里的數(shù)據(jù)里的數(shù)據(jù)“取走取走”。UARTUA

18、RT工作過(guò)程工作過(guò)程 MSP430G2xx3 /| XIN|- | | | -|RST XOUT|- | | | P1.2/UCA0TXD|- | | 9600 - 8N1 | P1.1/UCA0RXD|-四、四、UART應(yīng)用應(yīng)用 #include void main( ) WDTCTL = WDTPW + WDTHOLD; UCA0CTL1 |= UCSWRST; P1SEL |= BIT1 + BIT2 ; / P1.1 = RXD, P1.2=TXD P1SEL2 |= BIT1 + BIT2 ; / P1.1 = RXD, P1.2=TXD UCA0CTL1 |= UCSSEL_2;

19、/ SMCLK UCA0BR0 = 104; / 1MHz 9600 UCA0BR1 = 0; / 1MHz 9600 UCA0MCTL = UCBRS_1; / Modulation UCBRSx = 1 UCA0CTL1 &= UCSWRST; / *Initialize USCI state machine* IE2 |= UCA0RXIE; / Enable USCI_A0 RX interrupt _bis_SR_register(LPM0_bits + GIE); / Enter LPM0, interrupts enabled#pragma vector=USCIAB0RX_VE

20、CTOR_interrupt void USCI0RX_ISR(void) while (!(IFG2&UCA0TXIFG); / USCI_A0 TX buffer ready? UCA0TXBUF = UCA0RXBUF; / TX - RXed characterMSP430G2553中斷向量有:中斷向量有:串口中斷向量:串口中斷向量:USCIAB0RX_VECTOR USCIAB0TX_VECTOR外部中斷向量:外部中斷向量:PORT1_VECTOR PORT2_VECTOR定時(shí)器中斷向量:定時(shí)器中斷向量:TIMER0_A1_VECTOR TIMER0_A0_VECTORTIMER1_

21、A1_VECTORTIMER1_A0_VECTORMSP430F6638中斷向量有:中斷向量有:串口中斷向量:串口中斷向量:USCI_A0_VECTOR USCI_A1_VECTOR USCI_B0_VECTOR USCI_B1_VECTOR外部中斷向量:外部中斷向量:PORT1_VECTOR PORT2_VECTOR定時(shí)器中斷向量:定時(shí)器中斷向量:TIMER0_A1_VECTORTIMER0_B1_VECTOR TIMER0_A0_VECTORTIMER0_B0_VECTORTIMER1_A1_VECTORTIMER2_A1_VECTORTIMER1_A0_VECTORTIMER2_A0_V

22、ECTORMSP430G2xx3 /| XIN|- | | | 32kHz -|RST XOUT|- | | | P1.2/UCA0TXD|- | | 9600 - 8N1 | P1.1/UCA0RXD|-#include const char string1 = Hello Worldrn ;unsigned int i;int main(void) WDTCTL = WDTPW + WDTHOLD; / Stop WDT UCA0CTL1 |= UCSWRST; P1SEL = BIT1 + BIT2 ; / P1.1 = RXD, P1.2=TXD P1SEL2 = BIT1 + BIT

23、2 ; / P1.1 = RXD, P1.2=TXD UCA0CTL1 |= UCSSEL_1; / CLK = ACLK UCA0BR0 = 0 x03; / 32kHz/9600 = 3.41 UCA0BR1 = 0 x00; UCA0MCTL = UCBRS_3; / Modulation UCBRSx = 3 UCA0CTL1 &= UCSWRST; / *Initialize USCI state machine* IE2 |= UCA0RXIE; / Enable USCI_A0 RX interrupt _bis_SR_register(LPM3_bits + GIE); / E

24、nter LPM3 w/ int until Byte RXed#pragma vector=USCIAB0TX_VECTOR_interrupt void USCI0TX_ISR(void) UCA0TXBUF = string1i+; / TX next character if (i = sizeof string1 - 1) / TX over? IE2 &= UCA0TXIE; / Disable USCI_A0 TX interrupt#pragma vector=USCIAB0RX_VECTOR_interrupt void USCI0RX_ISR(void) if (UCA0R

25、XBUF = u) / u received? i = 0; IE2 |= UCA0TXIE; / Enable USCI_A0 TX interrupt UCA0TXBUF = string1i+; MSP430G2xx3 MSP430G2xx3 | XIN|- /| XIN|- | | 32kHz | | | 32kHz | XOUT|- -|RST XOUT|- | | /| | | | RST|- | | | | | | -|P1.3 | | P1.0|- LED -|P1.4 | | P1.6|- LEDLED -|P1.0 | | P1.3|-LED -|P1.6 | | P1.4

26、|P1.1 | | | 9600 | | | UCA0RXD/P1.1|- |P1.2 |#include void main( ) WDTCTL = WDTPW + WDTHOLD; / Stop watchdog timer P1DIR = BIT0 + BIT6; / P1.0/6 setup for LED output P1OUT & = BIT0 + BIT6; UCA0CTL1 |= UCSWRST; P1SEL = BIT1 + BIT2 ; / P1.1 = RXD, P1.2=TXD P1SEL2 = BIT1 + BIT2; UCA0CTL1 |= UCSSEL_1; /

27、 CLK = ACLK UCA0BR0 = 3; / 32kHz/9600 = 3.41 UCA0BR1 = 0; UCA0MCTL = UCBRS_3; / Modulation UCBRSx = 3 UCA0CTL1 &= UCSWRST; / *Initialize USCI state machine* IE2 |= UCA0RXIE + UCA0TXIE; / Enable USCI_A0 TX/RX interrupt _bis_SR_register(LPM3_bits + GIE); / Enter LPM3 w/ interrupts enabled/ USCI A0/B0

28、Transmit ISR#pragma vector=USCIAB0TX_VECTOR_interrupt void USCI0TX_ISR(void) unsigned char TxByte=0; if (P1IN & BIT3) TxByte |= BIT6; if (P1IN & BIT4) TxByte |= BIT0; UCA0TXBUF = TxByte; / Read, justify, and transmit/ USCI A0/B0 Receive ISR#pragma vector=USCIAB0RX_VECTOR_interrupt void USCI0RX_ISR(v

29、oid) P1OUT = UCA0RXBUF; / Display RXed charater串行通信模式串行通信模式MSP430單片機(jī)的串行通信模式有單片機(jī)的串行通信模式有4種種:由由UCMODE控制選擇??刂七x擇。UART普通模式普通模式這是最普遍采用的工作模式,也是最為簡(jiǎn)這是最普遍采用的工作模式,也是最為簡(jiǎn)單的工作模式。單的工作模式。示例:示例:回應(yīng)接收的字符,開(kāi)啟接收中斷,每接收到一個(gè)字符,就進(jìn)入中斷處理函數(shù),將接收緩沖回應(yīng)接收的字符,開(kāi)啟接收中斷,每接收到一個(gè)字符,就進(jìn)入中斷處理函數(shù),將接收緩沖寄存器的值賦給發(fā)送緩沖寄存器,波特率為寄存器的值賦給發(fā)送緩沖寄存器,波特率為9600,AC

30、LK = 32768Hz crystal, MCLK = SMCLK = DCO 1.045MHz,波特率配置計(jì)算方法:波特率配置計(jì)算方法:ACLK / Baud = 32768Hz 9600 = 3.41UCA1BR0 = 3; UCA1BR1 = 0; round(N-INT(N)16 = 3波特率控制寄存器波特率控制寄存器 UCAxBR0和和UCAxBR1UCAxBR0是波特率發(fā)生器的低是波特率發(fā)生器的低8位位;UCAxBR1是波特率發(fā)生器的高是波特率發(fā)生器的高8位位.串口中斷允許寄存器串口中斷允許寄存器UCAxIE0: 發(fā)送中斷禁止發(fā)送中斷禁止1: 發(fā)送中斷允許發(fā)送中斷允許0: 接收中

31、斷禁止接收中斷禁止1: 接收中斷允許接收中斷允許串口中斷標(biāo)志寄存器串口中斷標(biāo)志寄存器 UCAxIFG發(fā)送中斷標(biāo)志位,當(dāng)發(fā)送中斷標(biāo)志位,當(dāng)UCA0TXBUF為空時(shí),為為空時(shí),為1當(dāng)當(dāng)UCA0RXBUF已經(jīng)接收到完整的字符已經(jīng)接收到完整的字符時(shí),為時(shí),為1空閑線路多處理機(jī)模式空閑線路多處理機(jī)模式發(fā)送空閑幀:發(fā)送空閑幀:1.置位置位UCTXADDR,然后把地址字符寫(xiě)入發(fā)送緩沖,然后把地址字符寫(xiě)入發(fā)送緩沖UCAxTXBUF。對(duì)新數(shù)。對(duì)新數(shù)據(jù)來(lái)說(shuō),據(jù)來(lái)說(shuō),UCAxTXBUF必須是準(zhǔn)備好的(必須是準(zhǔn)備好的(UCTXIFG=1)。這會(huì)產(chǎn)生一個(gè))。這會(huì)產(chǎn)生一個(gè)11位的空閑周期,隨后發(fā)送地址字符。當(dāng)?shù)刂纷址麖陌l(fā)

32、送緩沖位的空閑周期,隨后發(fā)送地址字符。當(dāng)?shù)刂纷址麖陌l(fā)送緩沖UCAxTXBUF進(jìn)進(jìn)入移位寄存器時(shí)入移位寄存器時(shí)UCTXADDR會(huì)自動(dòng)復(fù)位。會(huì)自動(dòng)復(fù)位。2.把要發(fā)送的數(shù)據(jù)字符寫(xiě)入發(fā)送緩存把要發(fā)送的數(shù)據(jù)字符寫(xiě)入發(fā)送緩存UCAxTXBUF。對(duì)新數(shù)據(jù)來(lái)說(shuō),。對(duì)新數(shù)據(jù)來(lái)說(shuō),UCAxTXBUF必須是準(zhǔn)備好的(必須是準(zhǔn)備好的(UCTXIFG=1)。對(duì)新數(shù)據(jù)來(lái)說(shuō),只要移位)。對(duì)新數(shù)據(jù)來(lái)說(shuō),只要移位寄存器是準(zhǔn)備好狀態(tài),寫(xiě)入發(fā)送緩存寄存器是準(zhǔn)備好狀態(tài),寫(xiě)入發(fā)送緩存UCAxTXBUF的數(shù)據(jù)被傳送到移位寄存的數(shù)據(jù)被傳送到移位寄存器并被發(fā)送出去。在發(fā)送的地址和數(shù)據(jù)之間或在發(fā)送的數(shù)據(jù)之間空閑線路時(shí)器并被發(fā)送出去。在發(fā)送的地

33、址和數(shù)據(jù)之間或在發(fā)送的數(shù)據(jù)之間空閑線路時(shí)間不能忽略,否則,發(fā)送的數(shù)據(jù)將被誤解為地址。間不能忽略,否則,發(fā)送的數(shù)據(jù)將被誤解為地址。塊的起始信號(hào):塊的起始信號(hào):方法方法1:特意在前后兩個(gè)數(shù)據(jù)塊之間增加:特意在前后兩個(gè)數(shù)據(jù)塊之間增加IO位或更多位的空閑時(shí)間。位或更多位的空閑時(shí)間。方法方法2:在寫(xiě):在寫(xiě)SCITXBUF寄存器之前,寄存器之前,SCI口首先將口首先將TXWAKE位置位置1,這樣就會(huì),這樣就會(huì)自動(dòng)發(fā)送自動(dòng)發(fā)送11位的空閑時(shí)間。在這種模式下,除非必要,否則串行通信線路不會(huì)位的空閑時(shí)間。在這種模式下,除非必要,否則串行通信線路不會(huì)空閑。在設(shè)置空閑。在設(shè)置TXWAKE后發(fā)送地址數(shù)據(jù)前,要向后發(fā)送

34、地址數(shù)據(jù)前,要向SCITXBUF寫(xiě)入一個(gè)無(wú)關(guān)的數(shù)寫(xiě)入一個(gè)無(wú)關(guān)的數(shù)據(jù),以保障能夠發(fā)送空閑時(shí)間。據(jù),以保障能夠發(fā)送空閑時(shí)間。在一個(gè)空閑周期之后接收的第一個(gè)字符是地址字符。在一個(gè)空閑周期之后接收的第一個(gè)字符是地址字符。UCIDIL被用作每個(gè)字符被用作每個(gè)字符塊的地址標(biāo)簽。在線路空閑多機(jī)模式下,當(dāng)接收的字符是地址時(shí)塊的地址標(biāo)簽。在線路空閑多機(jī)模式下,當(dāng)接收的字符是地址時(shí)UCIDIL就會(huì)就會(huì)被置位。被置位。UCDORM被用于在多機(jī)模式下控制數(shù)據(jù)接收。當(dāng)被用于在多機(jī)模式下控制數(shù)據(jù)接收。當(dāng)UCDORM=1時(shí),所有的非地時(shí),所有的非地址字符被拼裝起來(lái)但不會(huì)將該字符移送到接收緩沖址字符被拼裝起來(lái)但不會(huì)將該字符移送到接收緩沖UCAxRXBUF,同時(shí)產(chǎn)生中同時(shí)產(chǎn)生中斷標(biāo)志斷標(biāo)志UCRXIFG=1.當(dāng)當(dāng)UCRXEIE=1時(shí),任何可用的錯(cuò)誤標(biāo)志被置位。當(dāng)時(shí),任何可用的錯(cuò)誤標(biāo)志被置位。當(dāng)UCRXEIE=0并且接收到地址字符,但傳輸字符發(fā)生了幀錯(cuò)誤或奇偶錯(cuò)誤,字并且接收到地址字符,但傳輸字符發(fā)生了幀

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論