<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          MSP430--UART模塊

          作者: 時間:2016-11-26 來源:網(wǎng)絡(luò) 收藏
          UART是通用異步串行接口的簡稱。串行通信接口是用來與單片機(jī)外界系統(tǒng)進(jìn)行通信橋梁,比如可以吧單片機(jī)ADC轉(zhuǎn)換的數(shù)據(jù)通過串口發(fā)送給PC機(jī)(上位機(jī)),經(jīng)上位機(jī)處理之后在發(fā)回給單片,達(dá)到通信的目的。TI公司的MSP430系列單片機(jī)均具有UART功能,其中大部分還和SPI,I2C功能復(fù)用,通過相關(guān)寄存器的配置,可以很輕松地就實(shí)現(xiàn)了UART,SPI,I2C的通信功能。在此以MSP430x149為例介紹UART功能及其實(shí)現(xiàn)過程。

          1.異步通信的結(jié)構(gòu):

          本文引用地址:http://www.ex-cimer.com/article/201611/322052.htm

          2.UART數(shù)據(jù)格式(數(shù)據(jù)協(xié)議):

          異步通信再不發(fā)送數(shù)據(jù)的時候,通信線路上總是呈現(xiàn)高電平狀態(tài),稱為空閑狀態(tài)。當(dāng)有數(shù)據(jù)發(fā)送是,信號線變成低電平,并持續(xù)一位的時間用于表示發(fā)送字符的開始,該為稱為起始位。起始位之后在信號線上依次出現(xiàn)發(fā)送的數(shù)據(jù)。

          起始位,數(shù)據(jù)位由高到低7/8位,地址位 0/1位,奇偶校驗(yàn)位 奇偶或無,停止位1/2位。數(shù)據(jù)位位數(shù)、地址位、奇偶校驗(yàn)位、停止位均可由單片機(jī)內(nèi)部寄存器控制;這款單片機(jī)都有兩個USART模塊,有兩套獨(dú)立的寄存器組;以下寄存器命中出現(xiàn)x代表0或是1,0代表對應(yīng)0模塊的寄存器,1代表對應(yīng)1模塊的寄存器;其中,與串口模式設(shè)置相關(guān)的控制位都位于UxCTL寄存器,與接收相關(guān)的控制位都位于UxRCTL寄存器,與發(fā)送相關(guān)的控制位都位于UxTCTL寄存器;波特率設(shè)置用UxBR0、UxBR1、UxMCTL三個寄存器;接收與發(fā)送有獨(dú)立的緩存UxRXBUF、UxTXBUF,并具有獨(dú)立的移位寄存器和獨(dú)立的中斷;中斷允許控制位位于IE1/2寄存器,中斷標(biāo)志位位于IFG1/2寄存器。

          3.波特率設(shè)置:430的波特率設(shè)置用三個寄存器實(shí)現(xiàn):
          UxBR0:波特率發(fā)生器分頻系數(shù)低8位。
          UxBR1:波特率發(fā)生器分頻系數(shù)高8位。
          UxMCTL:波特率發(fā)生器分頻系數(shù)的小數(shù)部分實(shí)現(xiàn)。
          設(shè)置波特率時,首先要選擇合適的時鐘源:USART模塊可以設(shè)置的時鐘源有UCLK引腳、ACLK、SMCLK;對于較低的波特率(9600以下),可選ACLK作為時鐘源,這樣,在LPM3(低功耗3)模式下,串口仍能正常發(fā)送接收數(shù)據(jù);另外,由于串口接收過程有一個三取二判決邏輯,這至少需要三個時鐘周期,因此分頻系數(shù)必須大于3;波特率高于9600時,將不能使用ACLK作為時鐘源,要調(diào)為頻率較高的SMCLK作為時鐘源;另外還可以外部輸入UCLK時鐘。分頻系數(shù)計算公式如下:

          小數(shù)分頻是MSP430單片機(jī)的串口特色之一,UxMCTL寄存器的作用就是控制小數(shù)的分頻,控制方法如下:對應(yīng)位是1,則分頻系數(shù)加一,0則分頻系數(shù)減一;小數(shù)分頻器會自動依次取出每一位來調(diào)整分頻系數(shù)。其計算方法:可以先計算小數(shù)部分一的個數(shù),然后把1均勻的放入UxMCTL的8位中,這樣計算比較簡單,分頻系數(shù)的小數(shù)部分乘以8即得到1的位數(shù),查表得到對應(yīng)的UxMCTL值;另外一種通過計算每一位的錯誤率,交互計算,直到得到最小錯誤率的UxMCTL值,這種方法比較復(fù)雜,但得到的小數(shù)分頻誤差更小。

          4.UART的初始化及復(fù)位

          在初始化或者重新配置UART時,必須按照以下順序進(jìn)行:

          (1)UxCTL寄存器的第0位SWRST置位;

          (2)在SWRST置位的條件下,初始化所有的UART寄存器,包括UxCTL寄存器;

          (3)通過置位模塊使能寄存器MEx的URXEx和UTXEx位使能UART的接受和發(fā)送使能模塊;

          (4)通過軟件復(fù)位UxCTL寄存器的第0位SWRST;

          (5)通過中斷使能寄存器IEx的URXIEx和UTXIEx來使能發(fā)送和接受中斷。

          5.UART的中斷

          (1)發(fā)送中斷:當(dāng)發(fā)送緩沖寄存器UxTXBUF被寫入需要發(fā)送的數(shù)據(jù)的時候,UTXIFGx的中斷標(biāo)志位被置位;如果發(fā)送中斷被允許,并且總中斷被使能的話,則會向CPU發(fā)出中斷請求。當(dāng)響應(yīng)中斷請求之后,中斷標(biāo)志位被自動置0,在中斷函數(shù)里邊不需要手動清除標(biāo)志位。

          (2)接收中斷:當(dāng)有數(shù)據(jù)被裝載到發(fā)送緩沖寄存器UxRXBUF時,UTXIFGx的中斷標(biāo)志位被置位;如果接受中斷被允許,并且總中斷被使能的話,則會向CPU發(fā)出中斷請求。當(dāng)響應(yīng)中斷請求之后,中斷標(biāo)志位被自動置0,在中斷函數(shù)里邊不需要手動清除標(biāo)志位。


          上一頁 1 2 下一頁

          關(guān)鍵詞: MSP430UART模

          評論


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

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();