USCI Universal Serial Communication Interface USCIA UART Ir Slides: 16 Download presentation USCI 彈性極佳的新型通用串列介面 Universal Serial Communication Interface USCI_A • UART (支援Ir. DA/LIN) 或 SPI • 波特率(Baud-rate)產生 器及自動波特率偵測 • 雙Buffer TX/RX USCI_B • 支援高達 400 k. Hz的I 2 C master或slave 模式或 SPI • Bit clock產生器 • 雙Buffer TX/RX Lab (主程式) #include "msp 430 x 54 x. h" void main(void) { WDTCTL = WDTPW + WDTHOLD; P 5 SEL = BIT 6+BIT 7; UCA 1 CTL 1 |= UCSWRST; UCA 1 CTL 1 |= UCSSEL_1; UCA 1 BR 0 = 0 x 03; UCA 1 BR 1 = 0 x 00; UCA 1 MCTL = UCBRS_3+UCBRF_0; UCA 1 CTL 1 &= ~UCSWRST; UCA 1 IE |= UCRXIE; } __bis_SR_register(LPM 3_bits + GIE); // Stop WDT // P 5. 7 5. 6 = USCI_A 1 TXD/RXD // **Put state machine in reset** // CLK = ACLK // 32 k. Hz/9600=3. 41 (see User's Guide) // Baud rate的設定可參考user’s guide // Modulation UCBRSx=3, UCBRFx=0 // **Initialize USCI state machine** // Enable USCI_A 1 RX interrupt // Enter LPM 3, interrupts enabled 在電子通訊領域,鮑率(Baud rate)即調制速率,指的是信號被 調制以後在單位時間內的變化,即單位時間內載波參數變化的次 數。它是對符號傳輸速率的一種度量,1鮑即指每秒傳輸 1個符號。 單位「鮑」本身就已經是代表每秒的調制數,以「鮑每秒」( Baud per second)為單位是一種常見的錯誤。 Lab (中斷服務程式) // Echo back RXed character, confirm TX buffer is ready first #pragma vector=USCI_A 1_VECTOR __interrupt void USCI_A 1_ISR(void) { switch(__even_in_range(UCA 1 IV, 4)) { case 0: break; case 2: // Vector 2 - RXIFG while (!(UCA 1 IFG&UCTXIFG)); // USCI_A 1 TX buffer ready? UCA 1 TXBUF = UCA 1 RXBUF; // TX -> RXed character break; case 4: break; default: break; } } USCI USCI-中斷 USCI-中斷 USCI-中斷