新聞中心

EEPW首頁 > 嵌入式系統 > 設計應用 > atmega16串口通信

atmega16串口通信

作者: 時間:2016-12-01 來源:網絡 收藏

串口寄存器介紹

USART I/O 數據寄存器- UDR

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

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

• Bit 7 – RXC: USART 接收結束

接收緩沖器中有未讀出的數據時RXC 置位,否則清零。接收器禁止時,接收緩沖器被刷新,導致RXC 清零。RXC 標志可用來產生接收結束中斷( 見對RXCIE 位的描述)。

• Bit 6 – TXC: USART 發(fā)送結束

發(fā)送移位緩沖器中的數據被送出,且當發(fā)送緩沖器 (UDR) 為空時TXC 置位。執(zhí)行發(fā)送結束中斷時TXC 標志自動清零,也可以通過寫1 進行清除操作。TXC 標志可用來產生發(fā)送結束中斷( 見對TXCIE 位的描述)。

• Bit 5 – UDRE: USART 數據寄存器空

UDRE標志指出發(fā)送緩沖器(UDR)是否準備好接收新數據。UDRE為1說明緩沖器為空,已準備好進行數據接收。UDRE標志可用來產生數據寄存器空中斷(見對UDRIE位的描述)。復位后UDRE 置位,表明發(fā)送器已經就緒。

• Bit 4 – FE: 幀錯誤

如果接收緩沖器接收到的下一個字符有幀錯誤,即接收緩沖器中的下一個字符的第一個停止位為0,那么FE 置位。這一位一直有效直到接收緩沖器(UDR) 被讀取。當接收到的停止位為1 時, FE標志為0。對UCSRA 進行寫入時,這一位要寫0。

• Bit 3 – DOR: 數據溢出

數據溢出時DOR 置位。當接收緩沖器滿( 包含了兩個數據),接收移位寄存器又有數據,若此時檢測到一個新的起始位,數據溢出就產生了。這一位一直有效直到接收緩沖器(UDR) 被讀取。對UCSRA 進行寫入時,這一位要寫0。

• Bit 2 – PE: 奇偶校驗錯誤

當奇偶校驗使能(UPM1 = 1),且接收緩沖器中所接收到的下一個字符有奇偶校驗錯誤時UPE 置位。這一位一直有效直到接收緩沖器 (UDR) 被讀取。對UCSRA 進行寫入時,這一位要寫0。

• Bit 1 – U2X: 倍速發(fā)送

這一位僅對異步操作有影響。使用同步操作時將此位清零。此位置1 可將波特率分頻因子從16 降到8,從而有效的將異步通信模式的傳輸速率加倍。

• Bit 0 – MPCM: 多處理器通信模式

設置此位將啟動多處理器通信模式。MPCM 置位后, USART接收器接收到的那些不包含地址信息的輸入幀都將被忽略。發(fā)送器不受MPCM設置的影響。詳細信息請參考 P150“多處理器通訊模式” 。

USART 控制和狀態(tài)寄存器B -UCSRB

• Bit 7 – RXCIE: 接收結束中斷使能

置位后使能RXC 中斷。當RXCIE 為1,全局中斷標志位SREG 置位, UCSRA 寄存器的RXC 亦為1 時可以產生USART 接收結束中斷。

• Bit 6 – TXCIE: 發(fā)送結束中斷使能

置位后使能TXC 中斷。當TXCIE 為1,全局中斷標志位SREG 置位,UCSRA 寄存器的TXC 亦為1 時可以產生USART 發(fā)送結束中斷。

• Bit 5 – UDRIE: USART 數據寄存器空中斷使能

置位后使能UDRE 中斷。當UDRIE 為1,全局中斷標志位SREG 置位,UCSRA 寄存器的UDRE 亦為1 時可以產生USART 數據寄存器空中斷。

• Bit 4 – RXEN: 接收使能

置位后將啟動USART接收器。RxD 引腳的通用端口功能被USART 功能所取代。禁止接收器將刷新接收緩沖器,并使 FE、DOR 及PE標志無效。

• Bit 3 – TXEN: 發(fā)送使能

置位后將啟動將啟動USART 發(fā)送器。TxD 引腳的通用端口功能被USART 功能所取代。TXEN 清零后,只有等到所有的數據發(fā)送完成后發(fā)送器才能夠真正禁止,即發(fā)送移位寄存器與發(fā)送緩沖寄存器中沒有要傳送的數據。發(fā)送器禁止后,TxD引腳恢復其通用I/O功能。

• Bit 2 – UCSZ2: 字符長度

UCSZ2與UCSRC寄存器的UCSZ1:0結合在一起可以設置數據幀所包含的數據位數(字符長度)。

• Bit 1 – RXB8: 接收數據位 8

對9 位串行幀進行操作時,RXB8 是第9 個數據位。讀取UDR 包含的低位數據之前首先要讀取RXB8。

• Bit 0 – TXB8: 發(fā)送數據位8

對9 位串行幀進行操作時,TXB8 是第9 個數據位。寫UDR 之前首先要對它進行寫操作。

USART 控制和狀態(tài)寄存器C -UCSRC

• Bit 7 – URSEL: 寄存器選擇

通過該位選擇訪問UCSRC 寄存器或UBRRH 寄存器。當讀UCSRC 時,該位為1 ;當寫UCSRC 時, URSEL 為1。

• Bit 6 – UMSEL: USART 模式選擇

通過這一位來選擇同步或異步工作模式。

• Bit 5:4 – UPM1:0: 奇偶校驗模式

這兩位設置奇偶校驗的模式并使能奇偶校驗。如果使能了奇偶校驗,那么在發(fā)送數據,發(fā)送器都會自動產生并發(fā)送奇偶校驗位。對每一個接收到的數據,接收器都會產生一奇偶值,并與UPM0 所設置的值進行比較。如果不匹配,那么就將UCSRA 中的PE 置位。

• Bit 3 – USBS: 停止位選擇

通過這一位可以設置停止位的位數。接收器忽略這一位的設置。

• Bit 2:1 – UCSZ1:0: 字符長度

UCSZ1:0與UCSRB寄存器的 UCSZ2結合在一起可以設置數據幀包含的數據位數(字符長度)。

• Bit 0 – UCPOL: 時鐘極性

這一位僅用于同步工作模式。使用異步模式時,將這一位清零。UCPOL 設置了輸出數據的改變和輸入數據采樣,以及同步時鐘XCK 之間的關系。



關鍵詞: atmega16串口通

評論


技術專區(qū)

關閉