avr串口通信初始化設(shè)置及例程0

avr串口通信初始化設(shè)置及例程0

ID:10198616

大?。?0.00 KB

頁數(shù):6頁

時間:2018-06-12

avr串口通信初始化設(shè)置及例程0_第1頁
avr串口通信初始化設(shè)置及例程0_第2頁
avr串口通信初始化設(shè)置及例程0_第3頁
avr串口通信初始化設(shè)置及例程0_第4頁
avr串口通信初始化設(shè)置及例程0_第5頁
資源描述:

《avr串口通信初始化設(shè)置及例程0》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、Atmega128串口詳解0000Atmega128有兩個串口:USART0與USART1以USART0為例串口的初始化包括:傳輸模式的選擇:同步還是異步,默認為異步模式,可通過選擇USART控制和狀態(tài)寄存器UCSR0C中的UMSEL位來選擇,UMSEL為0,是異步模式.波特率的設(shè)置:通信的雙方都必須有相同的波特率,波特率可以通過設(shè)置波特率發(fā)生寄存器UBRR0來確定,UBRR0為兩字節(jié)16位的寄存器,可分為UBRR0H和UBRR0L.同時起作用的還有UCSR0A中的波特率加倍位UX2,當UX2為1時設(shè)置的波特率

2、加倍.傳輸幀格式的設(shè)置:默認是8位數(shù)據(jù)位,一位停止位發(fā)送接受的使能與中斷:通過設(shè)置UCSR0B來根據(jù)需要選擇接收或發(fā)送的使能和是否使用中斷,對使用中斷的USART操作,初始化前要關(guān)閉中斷USART0的控制和狀態(tài)寄存器有:UCSR0A,UCSR0B,UCSR0C,波特率寄存器有UBRR0,即UBRR0H和UBRR0L,數(shù)據(jù)寄存器為UDR01、初始化:設(shè)置波特率前,要關(guān)閉USART0的所有使用,包括使能和中斷:UCSR0B=0B00000000;//關(guān)閉USART02、設(shè)置UCSR0A:UCSR0A能寫的有Bit0

3、,Bit1,Bit6,其他5位為狀態(tài)位.我們一般使用的有Bit1-U2X0,當這一位為1時,波特率的分頻因子從16降到8,能夠有效的將異步通信模式的傳輸速率加倍,但是這一位僅對異步操作有影響,使用同步操作時應將此位清零.UCSR0A=0B00000000;//不使用倍速發(fā)送3、設(shè)置UCSR0C:Bit6-UMSEL0:USART0的模式選擇,0為異步模式,1為同步模式Bit5:4-UPM01:0:奇偶校驗模式,00禁止,01,保留,10偶校驗,11,奇校驗Bit3-USBS0:停止位的選擇,0停止位為1bit,

4、1停止位為2-bitsBit2:1-UCSZ01:0:字符長度,當UCSZ02為0時,00表示5位,01表示6位,10表示7位,11表示8位.當UCSZ02為1時,11表示9位.(UCSZ02為UCSR0B里的一位寄存器)eg:UCSR0C=0B00000110//異步模式,禁止奇偶校驗,停止位為1位,數(shù)據(jù)位為8位4、設(shè)置UBRR:UBRR的設(shè)置和這些參數(shù)有關(guān):U2X0,CPU頻率,波特率當U2X0為0時,即異步正常模式下,UBRR的計算公式:1、U2X=0時的公式計算UBRR0L=(F_CPU/BAUDRAT

5、E/16-1)%256;UBRR0H=(F_CPU/BAUDRATE/16-1)/256;2、U2X=1時的公式計算UBRRL=(F_CPU/BAUDRATE/8-1)%256;UBRRH=(F_CPU/BAUDRATE/8-1)/256;//也可根據(jù)數(shù)據(jù)手冊的[波特率設(shè)置的例子]查得//UBRRL=0x2F;//setbaudratelo//UBRRH=0x00;//setbaudratehi設(shè)置一般會有誤差,誤差計算方法為:Error[%]=(BaudRate_ture/BaudRate-1)*100%;5

6、、然后就是設(shè)置UCSR0B:Bit7-RXCIE0為接收結(jié)束中斷使能,Bit6-TXCIE0為發(fā)送結(jié)束中斷使能,Bit4-RXEN0為接收使能,Bit3-TXEN0為發(fā)送使能.一般情況下,接收使用中斷方式,所以使用接收結(jié)束中斷使能.UCSR0B=0B10011000//發(fā)送接收使能,接收結(jié)束使能還一種寫法是UCSR0B

7、=(1<

8、(1<

9、(RXCIE0);如果更熟練,可以直接以10進制活16進制來設(shè)置這些寄存器:UCSR0B=0x98;或者UCSR0B=152;串口的初始化函數(shù):vo

10、iduart_init(void)//串口0初始化{UCSR0B=0x00;//disablewhilesettingbaudrateUCSR0A=0B00000000;//Bit1為1則倍速發(fā)送U2X=0UCSR0C=0x06;//B00000110//奇偶模式無,八位數(shù)據(jù)位,一位停止位UBRR0L=103;//B00011001波特率:9600BpsUBRR0H=0x00;//誤差率:0.156%UCSR0B=0x98;}初始化之后就是對USART0進行讀寫了.UCSR0A的Bit5-UDRE0標志指出發(fā)送

11、緩沖器UDR0是否準備好接收新數(shù)據(jù),UDRE0為1說明緩沖器為空,可以接收新數(shù)據(jù),UDRE0標志也可用來產(chǎn)生寄存器空中斷.復位后的UDRE0置位,表明發(fā)送器已經(jīng)就緒:當UDRE0為1時!(UCSR0A&(1<

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。