新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > msp430的USCI串口,妙招搞定

        msp430的USCI串口,妙招搞定

        作者: 時(shí)間:2016-11-09 來(lái)源:網(wǎng)絡(luò) 收藏
        430USCI串口(UART mode)初始化設(shè)置十分繁雜, UCA0BR0 UCA0BR1 UCA0MCTL 等還需按照波特率計(jì)算,并且有小數(shù)部分微調(diào),在這里共享一個(gè)頭文件,在操作串口時(shí),只要一個(gè)init_uart(9600);就全搞定,注:9600還能改成4800 115200等其他波特率,十分方便。

        #define clock 8000000
        #define UCBRS(x) UCBRS_##x

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

        void uart_init(long baud)
        {
        float x = clock / baud ;
        long y = clock / baud ;
        char n;
        P1SEL = BIT1 + BIT2 ; // P1.1 = RXD, P1.2=TXD
        P1SEL2 = BIT1 + BIT2 ;
        UCA0CTL1|=UCSSEL_2 ;

        UCA0BR0 = y % 256;
        UCA0BR1 = y / 256;

        n=(char)((x-y)*8);
        UCA0MCTL=2*n; //UCBRS_n n為*2
        UCA0CTL1 &= ~UCSWRST;
        IE2 |= UCA0RXIE ;
        }

        UCA0MCTL=2*n; 這里是移位操作,詳情請(qǐng)看register。

        當(dāng)然,時(shí)鐘修改了的話,也要記得把clock修改一下。

        好用的話,大家支持一個(gè)吧,下面我把頭文件共享,支持printf,getchar等。



        關(guān)鍵詞: msp430USCI串

        評(píng)論


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

        關(guān)閉
        主站蜘蛛池模板: 嘉鱼县| 隆回县| 石首市| 历史| 新乐市| 晋中市| 红河县| 全椒县| 敦煌市| 赤峰市| 怀化市| 西和县| 达尔| 武山县| 彩票| 阿拉尔市| 北川| 伊宁县| 清水县| 万源市| 沾化县| 无锡市| 台中县| 慈利县| 平湖市| 临猗县| 大关县| 东明县| 桓仁| 嘉善县| 眉山市| 饶阳县| 蓬安县| 客服| 长顺县| 英吉沙县| 县级市| 伊宁市| 保定市| 襄汾县| 文水县|