在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 【UART】USCI:UART模式

            【UART】USCI:UART模式

            作者: 時間:2016-11-25 來源:網(wǎng)絡(luò) 收藏


            msp430f541x、msp430f543x多達(dá)4個通用串行通信接口(USCI)模塊,支持多種串行通信模式,不同的 USCI 模塊支持不同的模式。

            本文引用地址:http://www.biyoush.com/article/201611/321230.htm

            USCI_Ax模塊支持:

            • UART模式;
            • IrDA通信的脈沖整形;
            • LIN通信的自動波特率檢測;
            • SPI模式;

            USCI_Bx模塊支持:

            • IIC模式;
            • SPI模式;

            UART模式:


            在異步模式下,USCI_Ax模塊通過兩個外部引腳UCAxRXD和UCAxTXD將芯片連接到外部系統(tǒng)。當(dāng)UCSYNC

            位清零時,選擇UART模式。




            UART模塊特征包括:

            • 帶奇校驗、偶校驗或非奇偶校驗的7或8位數(shù)據(jù);
            • 獨立的發(fā)送和接收移位寄存器;
            • 獨立的發(fā)送和接受緩沖寄存器;
            • 發(fā)送和接收的獨立中斷能力;
            • 最低位優(yōu)先或最高位優(yōu)先的數(shù)據(jù)發(fā)送和接收;
            • 多處理器系統(tǒng)的內(nèi)置空閑線路和地址位通信協(xié)議;
            • 用于自動從LPMx模式喚醒的接收機(jī)起始邊沿檢測;
            • 波特率可編程控制,支持小數(shù)波特率調(diào)制;
            • 用于錯誤檢測和抑制的狀態(tài)標(biāo)志;
            • 用于地址檢測的狀態(tài)標(biāo)志;

            一、USCI初始化和復(fù)位

            PUC或置位UCSWRST,可以使USCI復(fù)位。PUC后,UCSWRST位自動置位,這使 USCI保持在復(fù)位狀態(tài)。UCSWRST位置位,將使UCRXIE,UCTXIE,UCRXIFG,UCRXERR,UCBRK,UCPE,UCOE,UCFE,UCSTOE 和 UCBTOE 位復(fù)位,UCTXIFG 位置位。清除 UCSWRST 將釋放 USCI,使其進(jìn)入操作狀態(tài)。



            推薦使用以下過程,進(jìn)行初始化或重新配置:

            1.置位UCSWRST (BIS.B #UCSWRST,&UCAxCTL1);

            2.2設(shè)置UCSWRST=1,初始化所有的USCI寄存器(包括UCAxCTL1);

            3.配置端口;

            4.軟件清除UCSWRST(BIC.B #UCSWRST,&UCAxCTL1);

            5.通過UCRXIE和/或UCTXIE使能中斷(可選);

            例:串口助手發(fā)什么就返回什么.

            #include "msp430x54x.h"

            // ACLK = REFO = 32768Hz, MCLK = SMCLK = default DCO/2 = 1048576Hz

            // P3.4,5——USCI_A0 TXD/RXD;P9.4,5——USCI_A2 TXD/RXD;P10.4,5——USCI_A3 TXD/RXD;

            void main(void)
            {
            WDTCTL = WDTPW + WDTHOLD; // Stop WDT

            P5SEL = 0xc0; // P5.6,7 = USCI_A1 TXD/RXD
            UCA1CTL1 |= UCSWRST; // **Put state machine in reset**
            UCA1CTL1 |= UCSSEL_2; // SMCLK
            UCA1BR0 = 9; // 1MHz 115200 (see Users Guide)
            UCA1BR1 = 0; // 1MHz 115200
            UCA1MCTL |= UCBRS_1 + UCBRF_0; // Modulation UCBRSx=1, UCBRFx=0
            UCA1CTL1 &= ~UCSWRST; // **Initialize USCI state machine**
            UCA1IE |= UCRXIE; // Enable USCI_A1 RX interrupt

            __bis_SR_register(LPM0_bits + GIE); // Enter LPM0, interrupts enabled
            }

            // Echo back RXed character, confirm TX buffer is ready first,發(fā)送數(shù)據(jù)之前確定發(fā)送緩存準(zhǔn)備好

            #pragma vector=USCI_A1_VECTOR
            __interrupt void USCI_A1_ISR(void)
            {
            switch(__even_in_range(UCA1IV,4))
            {
            case 0:break; // Vector 0 - no interrupt
            case 2: // Vector 2 - RXIFG
            while (!(UCA1IFG&UCTXIFG)); // USCI_A1 TX buffer ready?
            UCA1TXBUF = UCA1RXBUF; // TX -> RXed character
            break;
            case 4:break; // Vector 4 - TXIFG
            default: break;
            }
            }

            //UCTXIFG=0x02,UCA1IFG&UCTXIFG,當(dāng)UCA1IFG的UCTXIFG位為1時,說明UCA1TXBUF為空,跳出while循環(huán)循環(huán);當(dāng)UCTXIFG位為0時UCA1TXBUF不為空,停在循環(huán)。


            二、USCI中斷

            USCI只有一個發(fā)送和接收共用的中斷向量,USCI_Ax和USC_Bx不共用中斷向量。

            2.1 USCI 發(fā)送中斷操作

            發(fā)射機(jī)置位 UCTXIFG 中斷標(biāo)志,這表明 UCAxTXBUF 已經(jīng)準(zhǔn)備好接收另一個字符(即UCAxTXBUF 為空)如果UCTXIE 和GIE 也置位的話,將產(chǎn)生中斷請求。如果將字符寫入,UCAxTXBUF、UCTXIFG將自動復(fù)位而無需軟件復(fù)位。PUC之后或UCSWRST = 1時,UCTXIFG 置位、UCTXIE 復(fù)位。

            2.2 USCI 接收中斷操作

            每接收到1個字符并將其載入到 UCAxRXBUF 時,UCRXIFG 中斷標(biāo)志置位,如果 UCTXIE 和 GIE 也置位的話,將產(chǎn)生中斷請求。UCRXIFG 和UCRXIE 可以通過系統(tǒng)復(fù)位PUC信號或 UCSWRST = 1復(fù)位。當(dāng)讀取UCAxRXBUF時,UCRXIFG 自動復(fù)位。

            2.3 UCAxIV,中斷向量發(fā)生器

            USCI 中斷標(biāo)志具有一定的優(yōu)先次序,組合使用一個中斷向量。中斷向量寄存器 UCAxIV 用于確定產(chǎn)生中斷的標(biāo)志。使能的具有最高優(yōu)先級的中斷在 UCAxIV寄存器內(nèi)產(chǎn)生一個數(shù)值,該數(shù)值可以加到程序計數(shù)器上,從而自動跳轉(zhuǎn)到相應(yīng)的軟件子程序處。禁止中斷不會影響 UCAxIV的值。

            對UCAxIV寄存器的任何訪問,讀或?qū)懀瑢詣訌?fù)位掛起的優(yōu)先級最高的中斷標(biāo)志。如果另一個中斷標(biāo)志置位,在響應(yīng)完第一個中斷后,立即產(chǎn)生另一個中斷。

            三、寄存器

            3.1




            此寄存器主要是定義數(shù)據(jù)通信的字符格式,UART 的字符格式包括一個起始位,7 或 8 位數(shù)據(jù)位,一個奇/偶/非奇偶校驗位,地址位(地址位模式),以及1或2個停止位,UCMSB位控制傳送方向,選擇低位或高位優(yōu)先,UART 通訊的典型選擇是低位優(yōu)先。

            PUC之后全為0,即 字符長度8、1個停止位、無奇偶校驗、低位優(yōu)先,UART模式。

            UCMODEx Bits2_1位:

            兩個芯片進(jìn)行異步通信時,對協(xié)議來說,不需要多處理器格式。當(dāng)3 個或更多個芯片通信時,USCI 支
            持線路空閑和地址位多處理器通信格式。


            上一頁 1 2 下一頁

            關(guān)鍵詞: UARTUSCIUART模

            評論


            技術(shù)專區(qū)

            關(guān)閉