日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導讀]USART數據寄存器UDR:當對此寄存器進行讀的時候,實際就是接收數據緩沖寄存器(RXB)。當對此寄存器進行寫的時候,實際就是發(fā)送數據緩沖寄存器(TXB)。USART控制和狀態(tài)寄存器A:UCSRA(RXC,TXC,UDRE,FE,DOR,PE,U2X,M

USART數據寄存器UDR:

當對此寄存器進行讀的時候,實際就是接收數據緩沖寄存器(RXB)。

當對此寄存器進行寫的時候,實際就是發(fā)送數據緩沖寄存器(TXB)。

USART控制和狀態(tài)寄存器A:UCSRA(RXC,TXC,UDRE,FE,DOR,PE,U2X,MPCM)

RXC:USART接受結束。接受緩沖器中仍然有未讀出的數據時,RXC置位。如果沒有任何需要讀的數據時,RXC清零。當接收器禁止時,接收緩沖器刷新,導致RXC清零,RXC標志也可以用來產生接收結束中斷。

TXC:USART發(fā)送結束。發(fā)送移位寄存器中的數據被送出,且當發(fā)送緩沖器(UDR/TXB)為空時,TXC置位。執(zhí)行發(fā)送結束中斷時TXC標志自動清零。

UDRE:USART數據寄存器空。當UDRE為“1”時,說明緩沖器為空,已準備好進行數據接受。

FE:幀錯誤。如果接收緩沖器接收到下一個字符有幀錯誤,即下一個字符的第一個停止位為“0”,那么FE置位。當對USART數據寄存器UDR進行寫入時,這一位必須寫“0”;

DOR:數據溢出。當接收緩沖器滿(包含了兩個數據),接收移位寄存器又有數據時,若檢測到一個新的起始位,數據溢出就產生了。DOR就置為“1”。當對USART進行寫時,DOR要寫為“0”。

PE:奇偶校驗錯誤。當奇偶校驗使能(UPM = 1),且接收緩沖中所接收的下一個字符有奇偶校驗錯誤,PE置位。對USART進行寫時,這一位寫為“0”;

U2X:倍速發(fā)送。僅僅對異步操作有影響。使用同步操作時把這一位寫“0”;

MPCM:設置此位將啟動多處理器通信模式。即,USART不再接收那些不包含地址信息的輸入幀,發(fā)送時USART不受MPCM的影響。

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

UCSRB(RXCIE,TXCIE,UDRIE,RXEN,TXEN,UCSZ2,RXB8,TXB8)

RXCIE:接收結束中斷使能。TXCIE:發(fā)送結束中斷使能;

UDRIE:USART數據寄存器空中斷使能;

RXEN:接收使能。置位后將啟動USART接收器RxD引腳的通用端口功能被USART功能所取代。

TXEN:發(fā)送使能。置位后將啟動USART發(fā)送器TxD引腳的通用端口功能被USART功能所取代。當該位清零后,并所有數據發(fā)送完成后,發(fā)送器才能真正禁止。I/O恢復通用功能。

UCSZ2:與UCSZ1, UCSZ0,結合在一起確定字符長度。

UCSZ2

UCSZ1

UCSZ0

字符長度

0

0

0

5位

0

0

1

6位

0

1

0

7位

0

1

1

8位

1

0

0

保留

1

0

1

保留

1

1

0

保留

1

1

1

9位

RXB8:對9位串行幀進行操作時,RXB8就是第9個數據位。讀取UDR包含的低位數據之前首先要讀取RXB8。如果小于9位,則忽略RXB8

TXB8:對9位串行幀進行操作時,TXB8就是第9個數據位。寫UDR包含的低位數據之前首先要寫TXB8。如果小于9位,則忽略TXB8

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

UCSRC(URSEL,UMSEL,UPM1,UPM0,USBS,UCSZ1,UCSZ0,UCPOL)

URSEL:寄存器選擇。通過該位選擇訪問UCSRC或者UBRRH,當讀寫UCSRC時,置位。當讀寫UBRRH時,弄為“0”

UMSEL:USART模式選擇,通過這一位來選擇同步或者異步工作模式,異步模式時為“0”,同步模式時為“1”。

UPM1:0奇偶校驗模式。如果校驗的結果不匹配(有錯誤)那么就將UCSRA中PE置位。

UPM1

UPM0

奇偶模式

0

0

禁止

0

1

保留

1

0

偶校驗

1

1

奇校驗

USBS:停止位選擇。當為“0”時,一位停止位,當為“1”時,兩位停止位。通過這一位可以設置停止位的位數,接收器忽略此位設置。

UCSZ1:0 字符長度。

UCPOL:時鐘極性這一位僅僅用于同步工作模式,異步工作模式時清零。

UCPOL

TxD引腳的輸出

RxD引腳的輸入

0

XCK上升沿

XCK下降沿

1

XCK下降沿

XCK上升沿

USART波特率寄存器

UBRRH(URSEL,-,-,-,UBRR[11:8])和UBRRL(UBRR[7:0])

URSEL:寄存器選擇,

UBRRH包含了USART波特率高4位,UBRRL包含了低8位。

傳輸線路RxD或TxD沒有數據傳輸,線路空閑時必須保持高電平。


時鐘工作模式

波特率計算公式

寄存器UBRR值計算公式

普通異步模式

UBRR=

UBRR=

倍速異步模式

BAUD=

UBRR=

主機同步模式

BAUD=

UBRR=


#include

//函數聲明

voiddelay(unsignedinttime);

voidUSART_Init();

voidUSART_Transmit(unsignedchardata);

//主函數

voidmain()

{

unsignedchari=0;

unsignedcharj=0;

//初始化E端口

PORTE=0x03;

DDRE=0x02;

//初始化C端口

DDRC=0xff;//全為輸出方式

PORTC=0x0f;//燈全亮

USART_Init();

while(1)

{

USART_Transmit(48+i);

j++;

PORTCPORTC=PORTC<<1;

if(j>=4){j=0;PORTC=0x0f;}

delay(10000);

if(++i>=10){i=0;}

}

}

//延時函數

voiddelay(unsignedinttime)

{

unsignedintj;

for(;time>0;time--)

{

for(j=100;j>0;j--);

}

}

//初始化串口

voidUSART_Init()

{

//波特率設置

UBRR1H=0x00;

UBRR1L=0x2f;

UCSR1A=UCSR0A&0x02;

//UCSR0B=(1<

//UCSR0C=(3<

//數據發(fā)送設置

UCSR1B=0x18;

UCSR1C=0x06;

}

//數據傳輸

voidUSART_Transmit(unsignedchardata)

{

//while(!(UCSR0A&(1<

while(!(UCSR1A)&0x20);

UDR1=data;

}


本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

  UART   UART是一種通用串行數據總線,用于異步通信。該總線雙向通信,可以實現全雙工傳輸和接收。在嵌入式設計中,UART用于主機與輔助設備通信,如汽車音響與外接AP之間的通信,

關鍵字: uart usart

void InitUart(void) { GPIO_InitTypeDef GPIO_InitStructure; #if 1// (USART_USED == USART1) RCC_AHBPeriph...

關鍵字: stm32f30x usart 串口 初始化順序

五、ATMEGA16的USART與PC機串行通信五—(02)、PC機發(fā)送字符給單片機,然后用液晶顯示發(fā)送的字符~~~這章節(jié)也是相對挺簡單的~~直接上圖片吧~~基本上就這么點吧~~然后就是程序了,這里我只是粘貼一下重要的程...

關鍵字: atmega16 avr單片機 usart 串行通信

終于,我忍不住想吐槽一下翻譯STM 32函數庫手冊的同學了,中間省略了好多東西而且是很重要的東西。。。。。。我的內心幾乎是奔潰的?。?!現在就來仔細說說關于STM 32 函數庫3.5 中關于USART串口通信的坑:在一些教...

關鍵字: STM32 usart

五、ATMEGA16的USART與PC機串行通信五—(03)、PC機發(fā)送控制指令控制單片機工作~(這個控制還是比較簡單的~~,不過個人認為還是有水平的~)還是先上圖片~~,然后程序,程序師模塊化的,我盡量貼全點~~然后就...

關鍵字: atmega16 avr單片機 usart 串行通信

一、簡單demo通過232串口,與上位機進行通信。首先保證單片機232串口與電腦的串口接口相連,當然電腦是USB接口,其實USB接口的實質也是串口。我們實現上位機發(fā)送一個16進制的數據,單片機接受到數據后顯示,并且2倍發(fā)

關鍵字: STM32 usart 串口通信

#include "stm32f10x_lib.h"#include"stdio.h"#define USART1_DR_Base0x40013804#define SENDBUF...

關鍵字: STM32 usart

Xmega128的串口非常強大,最多能支持8個串口。串口又有四種模式:1、異步2、同步3、IRDA紅外模式4、SPI主模式今天我們就使用CVAVR代碼向導生成簡單串口測試程序,實現每1s打印“HELLO WORLD”字符...

關鍵字: usart xmega128 串口

//------------------------------------------------------------------------------//ATMEGA16與PC機的通信實驗1//PC機發(fā)送一個字...

關鍵字: atmega16 avr單片機 usart 串行通信

前言串口對于處理器來說算是一種標配,也是在軟件開發(fā)中必不可少的,那就是使用串口來調試信息(打印出相應的信息)。STM32F0系列的芯片,串口根據型號不同,數量也不同,從1個到8個不等。今天主要總結串口簡單且常用

關鍵字: stm32f0xx usart 收發(fā)配置
關閉