新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > msp430的一些常用的C語言控制程序---RS232

        msp430的一些常用的C語言控制程序---RS232

        作者: 時間:2016-11-11 來源:網絡 收藏
        //需要調試助手輔助才能觀察到收或接的數據

        #include<msp430x14x.h>
        //
        void OSC_Init(void);
        void USATR0_Init(void);
        //
        void main(){
        WDTCTL = WDTPW + WDTHOLD;
        OSC_Init();
        USATR0_Init();
        _BIS_SR(GIE);//用調試助手可以檢測,也可以結合按鍵觀察到數據的傳輸
        }
        //
        void OSC_Init(void){
        BSCTL1 &= ~XT2OFF;//XT2振蕩器開啟
        do //清OSCFault標志
        {
        IFG1 &= ~OFIFG;
        for (i=0xFF;i>0;i--);
        } while((IFG1&OFIFG));
        BSCTL2 |= (SELM_1 + SELS);//MCLK = XT2CLK,SMCLK = XT2CLK
        }
        //
        void USATR0_Init(void){
        P3SEL |= (BIT4 + BIT5);//選擇端口的第二功能
        ME1 |= (UTXE0 + URXE0);//工作模式1,UART0 使能
        UCTL0 |= CHAR ;//發送字長,八位
        UTCTL0 |= (SSEL0 + SSEL1);//選擇時鐘源,用于確定波特率發生器的時鐘源,選擇輔助時鐘ACLK,子系統時鐘SMCLK
        UBR00 = 0x9F;//波特率選擇寄存器低位
        UBR10 = 0x01;//波特率選擇寄存器高位
        UMCTL0 = 0xB5;//波特率調整寄存器
        UCTL0 &= ~SWRST;//USATR狀態機初始化復位
        IE1 |= URXIE0;//允許USATR中斷
        }
        #pragma vector=UART0RX_VECTOR
        __interrupt void uart0_rx(void){
        while(!(IFG1 & UTXIFG0));//等待,看看接收寄存器里面是不是有數據
        TXBUF0 = RXBUF0;//將接收過來的數據在發出去
        }

        本文引用地址:http://www.104case.com/article/201611/316583.htm


        評論


        技術專區

        關閉
        主站蜘蛛池模板: 澳门| 浪卡子县| 邯郸县| 武穴市| 阿鲁科尔沁旗| 崇礼县| 台北市| 武平县| 商南县| 二手房| 慈利县| 宕昌县| 红桥区| 和顺县| 武城县| 武宁县| 黄山市| 汝阳县| 庆阳市| 平利县| 五家渠市| 庄浪县| 嘉鱼县| 保康县| 佛学| 万源市| 广德县| 大同市| 雷山县| 崇礼县| 黔西县| 南丰县| 垫江县| 新邵县| 甘德县| 嘉善县| 阳山县| 阿克苏市| 怀远县| 罗田县| 蒙山县|