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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)(學(xué)習(xí)ing)-ATMEGA16的USART與PC機(jī)串行通信

          AVR單片機(jī)(學(xué)習(xí)ing)-ATMEGA16的USART與PC機(jī)串行通信

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

          4)外部時(shí)鐘(這些東西感覺都是扯淡的~~呵呵)

          同步從機(jī)操作模式由外部時(shí)鐘驅(qū)動(dòng),如Figure 70 所示。
          輸入到XCK 引腳的外部時(shí)鐘由同步寄存器進(jìn)行采樣,用以提高穩(wěn)定性。同步寄存器的輸
          出通過一個(gè)邊沿檢測器,然后應(yīng)用于發(fā)送器與接收器。這一過程引入了兩個(gè)CPU 時(shí)鐘周
          期的延時(shí),因此外部XCK 的最大時(shí)鐘頻率由以下公式限制:

          fsck要注意fosc 由系統(tǒng)時(shí)鐘的穩(wěn)定性決定,為了防止因頻率漂移而丟失數(shù)據(jù),建議保留足夠的
          裕量。

          5)同步時(shí)鐘操作

          使用同步模式時(shí)(UMSEL = 1)XCK 引腳被用于時(shí)鐘輸入( 從機(jī)模式) 或時(shí)鐘輸出( 主機(jī)模
          式)。時(shí)鐘的邊沿、數(shù)據(jù)的采樣與數(shù)據(jù)的變化之間的關(guān)系的基本規(guī)律是:在改變數(shù)據(jù)輸出
          端TxD 的XCK 時(shí)鐘的相反邊沿對(duì)數(shù)據(jù)輸入端RxD 進(jìn)行采樣。

          4、幀格式

          串行數(shù)據(jù)幀由數(shù)據(jù)字加上同步位( 開始位與停止位) 以及用于糾錯(cuò)的奇偶校驗(yàn)位構(gòu)成。

          1)數(shù)據(jù)幀格式

          • 1 個(gè)起始位
          • 5、 6、 7、 8 或9 個(gè)數(shù)據(jù)位
          • 無校驗(yàn)位、奇校驗(yàn)或偶校驗(yàn)位
          • 1或2 個(gè)停止位
          數(shù)據(jù)幀以起始位開始;緊接著是數(shù)據(jù)字的最低位,數(shù)據(jù)字最多可以有9 個(gè)數(shù)據(jù)位,以數(shù)據(jù)
          的最高位結(jié)束。如果使能了校驗(yàn)位,校驗(yàn)位將緊接著數(shù)據(jù)位,最后是結(jié)束位。當(dāng)一個(gè)完整
          的數(shù)據(jù)幀傳輸后,可以立即傳輸下一個(gè)新的數(shù)據(jù)幀,或使傳輸線處于空閑狀態(tài)。Figure
          72 所示為可能的數(shù)據(jù)幀結(jié)構(gòu)組合。括號(hào)中的位是可選的。



          數(shù)據(jù)幀的結(jié)構(gòu)由UCSRB 和 UCSRC 寄存器中的UCSZ2:0、 UPM1:0、USBS 設(shè)定。接
          收與發(fā)送使用相同的設(shè)置。設(shè)置的任何改變都可能破壞正在進(jìn)行的數(shù)據(jù)傳送與接收。

          USART的字長位UCSZ2:0確定了數(shù)據(jù)幀的數(shù)據(jù)位數(shù);校驗(yàn)?zāi)J轿籙PM1:0用于使能與決
          定校驗(yàn)的類型; USBS 位設(shè)置幀有一位或兩位結(jié)束位。接收器忽略第二個(gè)停止位,因此
          幀錯(cuò)誤(FE) 只在第一個(gè)結(jié)束位為"0” 時(shí)被檢測到。

          2)校驗(yàn)位的計(jì)算

          校驗(yàn)位的計(jì)算是對(duì)數(shù)據(jù)的各個(gè)位進(jìn)行異或運(yùn)算。如果選擇了奇校驗(yàn),則異或結(jié)果還需要取
          反。校驗(yàn)位與數(shù)據(jù)位的關(guān)系如下:



          注意:校驗(yàn)位位于最后一個(gè)數(shù)據(jù)位與第一個(gè)停止位之間。

          5、USART的寄存器及設(shè)置

          1)USART I/O數(shù)據(jù)寄存器



          USART 發(fā)送數(shù)據(jù)緩沖寄存器和USART 接收數(shù)據(jù)緩沖寄存器共享相同的I/O 地址,稱為
          USART 數(shù)據(jù)寄存器或UDR。將數(shù)據(jù)寫入U(xiǎn)DR 時(shí)實(shí)際操作的是發(fā)送數(shù)據(jù)緩沖器存器
          (TXB),讀UDR 時(shí)實(shí)際返回的是接收數(shù)據(jù)緩沖寄存器(RXB) 的內(nèi)容。
          在5、6、7 比特字長模式下,未使用的高位被發(fā)送器忽略,而接收器則將它們?cè)O(shè)置為0。
          只有當(dāng)UCSRA寄存器的UDRE標(biāo)志置位后才可以對(duì)發(fā)送緩沖器進(jìn)行寫操作。如果UDRE
          沒有置位,那么寫入U(xiǎn)DR 的數(shù)據(jù)會(huì)被USART 發(fā)送器忽略。當(dāng)數(shù)據(jù)寫入發(fā)送緩沖器后,
          若移位寄存器為空,發(fā)送器將把數(shù)據(jù)加載到發(fā)送移位寄存器。然后數(shù)據(jù)串行地從TxD 引
          腳輸出。
          接收緩沖器包括一個(gè)兩級(jí)FIFO,一旦接收緩沖器被尋址FIFO 就會(huì)改變它的狀態(tài)。因此
          不要對(duì)這一存儲(chǔ)單元使用讀- 修改- 寫指令(SBI 和CBI)。使用位查詢指令(SBIC 和SBIS)
          時(shí)也要小心,因?yàn)檫@也有可能改變FIFO 的狀態(tài)(這些東西果斷沒有用過)。

          2)USART控制和狀態(tài)寄存器A



          • Bit 7 – RXC: USART 接收結(jié)束
          接收緩沖器中有未讀出的數(shù)據(jù)時(shí)RXC 置位,否則清零。接收器禁止時(shí),接收緩沖器被刷
          新,導(dǎo)致RXC 清零。RXC 標(biāo)志可用來產(chǎn)生接收結(jié)束中斷( 見對(duì)RXCIE 位的描述)。
          • Bit 6 – TXC: USART 發(fā)送結(jié)束
          發(fā)送移位緩沖器中的數(shù)據(jù)被送出,且當(dāng)發(fā)送緩沖器 (UDR) 為空時(shí)TXC 置位。執(zhí)行發(fā)送結(jié)
          束中斷時(shí)TXC 標(biāo)志自動(dòng)清零,也可以通過寫1 進(jìn)行清除操作。TXC 標(biāo)志可用來產(chǎn)生發(fā)送
          結(jié)束中斷( 見對(duì)TXCIE 位的描述)。
          • Bit 5 – UDRE: USART 數(shù)據(jù)寄存器空
          UDRE標(biāo)志指出發(fā)送緩沖器(UDR)是否準(zhǔn)備好接收新數(shù)據(jù)。UDRE為1說明緩沖器為空,已
          準(zhǔn)備好進(jìn)行數(shù)據(jù)接收。UDRE標(biāo)志可用來產(chǎn)生數(shù)據(jù)寄存器空中斷(見對(duì)UDRIE位的描述)。
          復(fù)位后UDRE 置位,表明發(fā)送器已經(jīng)就緒。
          • Bit 4 – FE: 幀錯(cuò)誤
          如果接收緩沖器接收到的下一個(gè)字符有幀錯(cuò)誤,即接收緩沖器中的下一個(gè)字符的第一個(gè)
          停止位為0,那么FE 置位。這一位一直有效直到接收緩沖器(UDR) 被讀取。當(dāng)接收到的
          停止位為1 時(shí), FE 標(biāo)志為0。對(duì)UCSRA 進(jìn)行寫入時(shí),這一位要寫0。
          • Bit 3 – DOR: 數(shù)據(jù)溢出
          數(shù)據(jù)溢出時(shí)DOR 置位。當(dāng)接收緩沖器滿( 包含了兩個(gè)數(shù)據(jù)),接收移位寄存器又有數(shù)據(jù),
          若此時(shí)檢測到一個(gè)新的起始位,數(shù)據(jù)溢出就產(chǎn)生了。這一位一直有效直到接收緩沖器
          (UDR) 被讀取。對(duì)UCSRA 進(jìn)行寫入時(shí),這一位要寫0。
          • Bit 2 – PE: 奇偶校驗(yàn)錯(cuò)誤
          當(dāng)奇偶校驗(yàn)使能(UPM1 = 1),且接收緩沖器中所接收到的下一個(gè)字符有奇偶校驗(yàn)錯(cuò)誤時(shí)
          UPE 置位。這一位一直有效直到接收緩沖器 (UDR) 被讀取。對(duì)UCSRA 進(jìn)行寫入時(shí),這一
          位要寫0。
          • Bit 1 – U2X: 倍速發(fā)送
          這一位僅對(duì)異步操作有影響。使用同步操作時(shí)將此位清零。
          此位置1 可將波特率分頻因子從16 降到8,從而有效的將異步通信模式的傳輸速率加倍。
          • Bit 0 – MPCM: 多處理器通信模式
          設(shè)置此位將啟動(dòng)多處理器通信模式。MPCM 置位后, USART 接收器接收到的那些不包
          含地址信息的輸入幀都將被忽略。發(fā)送器不受MPCM設(shè)置的影響。



          評(píng)論


          技術(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); })();