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

<s id="cmphk"><label id="cmphk"></label></s>
    <span id="cmphk"><var id="cmphk"></var></span>
    <dfn id="cmphk"><var id="cmphk"></var></dfn>
    <menu id="cmphk"><thead id="cmphk"></thead></menu>

    <address id="cmphk"></address>

      <dfn id="cmphk"></dfn>
      
      
      <span id="cmphk"></span>

      <object id="cmphk"><tt id="cmphk"></tt></object>
      1. 新聞中心

        MSP430F149的串口RS232接口

        作者: 時(shí)間:2016-11-27 來源:網(wǎng)絡(luò) 收藏
        1、 概述

        具有同步串口模式(SPI),異步通信模式(UART)。

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

        作異步通信時(shí),P3.4,P3.5,P3.6,P3.7第二功能分別是UTXD0, URXD0, UTXD1, UTXD2

        2、 使用方法概述

        2.1 程序架構(gòu)

        配置寄存器設(shè)置工作模式

        {

        設(shè)置IO口為第二功能作為串口收發(fā)引腳;

        使能串口收發(fā)功能;

        選擇每幀數(shù)據(jù)位為7或8;

        選擇波特率發(fā)生器時(shí)鐘源;

        配置波特率(查表得出值再配置UxBR0, UxBR1,UxMCTL);

        軟件清除串口復(fù)位位(SWRST);

        若采用中斷方式則使能接受、發(fā)送中斷

        }

        編寫接受/發(fā)送程序,可采用查詢方式或中斷方式。同51單片機(jī)不同的是,UTXIFG,URXIF在發(fā)送下一個(gè)數(shù)據(jù)和讀取數(shù)據(jù)時(shí)被自動(dòng)清零了,無需軟件清除。

        2.2 細(xì)節(jié)描述

        配置波特率時(shí)用戶手冊(cè)上有速查表,如下

        設(shè)置波特率時(shí)要選擇合適的時(shí)鐘源。對(duì)于較低的波特率(9600b/s及以下),可選ACLK,大于9600要選用SMCLK,因?yàn)?strong>串口波特率發(fā)生器分頻系數(shù)要求大于3。UxBR0(低)UxBR1(高)值的計(jì)算式為:選擇的時(shí)鐘源/波特率,再取整。為了精確,MSP430設(shè)置了小數(shù)分頻功能,通過UxMCTL來完成。

        3、相關(guān)寄存器

        1.ME1, Module Enable Register 1

        UTXE0 Bit 7 USART0 transmit enable. This bit enables the transmitter for USART0.

        0 Module not enabled

        1 Module enabled

        URXE0 Bit 6 USART0 receive enable. This bit enables the receiver for USART0.

        0 Module not enabled

        1 Module enabled

        2.UxCTL(UCTLx), USART Control Register

        CHAR Bit 4 Character length. Selects 7-bit or 8-bit character length.

        0 7-bit data

        1 8-bit data

        SWRST Bit 0 Software reset enable

        0 Disabled. USART reset released for operation

        1 Enabled. USART logic held in reset state

        3.UxTCTL(UTCTLx), USART Transmit Control Register

        SSELx Bits

        5-4

        Source select. These bits select the BRCLK source clock.

        00 UCLKI

        01 ACLK

        10 SMCLK

        11 SMCLK

        4.UxBR0, USART Baud Rate Control Register 0,低8位

        UxBR1, USART Baud Rate Control Register 1,高8位

        5. UxMCTL, USART Modulation Control Register

        UxMCTLx Bits

        7−0

        Modulation bits. These bits select the modulation for BRCLK.

        6.IFG1, Interrupt Flag Register 1

        UTXIFG0 Bit 7 USART0 transmit interrupt flag. UTXIFG0 is set when U0TXBUF is empty.

        0 No interrupt pending

        1 Interrupt pending

        URXIFG0 Bit 6 USART0 receive interrupt flag. URXIFG0 is set when U0RXBUF has received

        a complete character.

        0 No interrupt pending

        1 Interrupt pending

        7.IE1, Interrupt Enable Register 1

        UTXIE0 Bit 7 USART0 transmit interrupt enable. This bit enables the UTXIFG0 interrupt.

        0 Interrupt not enabled

        1 Interrupt enabled

        URXIE0 Bit 6 USART0 receive interrupt enable. This bit enables the URXIFG0 interrupt.

        0 Interrupt not enabled

        1 Interrupt enabled

        4、實(shí)例

        4.1 配置為N.8.1,9600,查詢方式收發(fā)數(shù)據(jù)

        /*******************************************

        函數(shù)名稱:InitUART

        功 能:初始化UART端口

        參 數(shù):無

        返回值 :無

        ********************************************/

        void InitUART(void)

        {

        P3SEL |= 0x30; // P3.4,5 = USART0 TXD/RXD

        ME1 |= URXE0 + UTXE0; // Enable USART0 T/RXD

        UCTL0 |= CHAR; // 8-bit character

        UTCTL0 |= SSEL0; // UCLK = ACLK

        UBR00 = 0x03; // 32k/9600 - 3.41

        UBR10 = 0x00; //

        UMCTL0 = 0x4A; // Modulation

        UCTL0 &= ~SWRST; // Initialize USART state machine

        }

        收數(shù)據(jù)

        if(IFG1 & URXIFG0) Disp1Char(U0RXBUF); //如果收到字符

        發(fā)數(shù)據(jù)

        while (!(IFG1 & UTXIFG0)); TXBUF0 =Char;

        4.2 配置接收數(shù)據(jù)中斷方式

        P3SEL |= 0x30; // 選擇P3.4和P3.5做UART通信端口

        ME1 |= UTXE0 + URXE0; // 使能USART0的發(fā)送和接受

        UCTL0 |= CHAR; // 選擇8位字符

        UTCTL0 |= SSEL0; // UCLK = ACLK

        UBR00 = 0x03; // 波特率9600

        UBR10 = 0x00; //

        UMCTL0 = 0x4A; // Modulation

        UCTL0 &= ~SWRST; // 初始化UART狀態(tài)機(jī)

        IE1 |= URXIE0; // 使能USART0的接收中斷

        _EINT();

        中斷服務(wù)函數(shù)

        #pragma vector = UART0RX_VECTOR

        __interrupt void UART0_RXISR(void)

        { }



        關(guān)鍵詞: MSP430F149串口RS232接

        評(píng)論


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

        關(guān)閉