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

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

USART數(shù)據(jù)寄存器UDR:

當(dāng)對此寄存器進(jìn)行讀的時(shí)候,實(shí)際就是接收數(shù)據(jù)緩沖寄存器(RXB)。

當(dāng)對此寄存器進(jìn)行寫的時(shí)候,實(shí)際就是發(fā)送數(shù)據(jù)緩沖寄存器(TXB)。

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

RXC:USART接受結(jié)束。接受緩沖器中仍然有未讀出的數(shù)據(jù)時(shí),RXC置位。如果沒有任何需要讀的數(shù)據(jù)時(shí),RXC清零。當(dāng)接收器禁止時(shí),接收緩沖器刷新,導(dǎo)致RXC清零,RXC標(biāo)志也可以用來產(chǎn)生接收結(jié)束中斷。

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

UDRE:USART數(shù)據(jù)寄存器空。當(dāng)UDRE為“1”時(shí),說明緩沖器為空,已準(zhǔn)備好進(jìn)行數(shù)據(jù)接受。

FE:幀錯(cuò)誤。如果接收緩沖器接收到下一個(gè)字符有幀錯(cuò)誤,即下一個(gè)字符的第一個(gè)停止位為“0”,那么FE置位。當(dāng)對USART數(shù)據(jù)寄存器UDR進(jìn)行寫入時(shí),這一位必須寫“0”;

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

PE:奇偶校驗(yàn)錯(cuò)誤。當(dāng)奇偶校驗(yàn)使能(UPM = 1),且接收緩沖中所接收的下一個(gè)字符有奇偶校驗(yàn)錯(cuò)誤,PE置位。對USART進(jìn)行寫時(shí),這一位寫為“0”;

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

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

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

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

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

UDRIE:USART數(shù)據(jù)寄存器空中斷使能;

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

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

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

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位串行幀進(jìn)行操作時(shí),RXB8就是第9個(gè)數(shù)據(jù)位。讀取UDR包含的低位數(shù)據(jù)之前首先要讀取RXB8。如果小于9位,則忽略RXB8

TXB8:對9位串行幀進(jìn)行操作時(shí),TXB8就是第9個(gè)數(shù)據(jù)位。寫UDR包含的低位數(shù)據(jù)之前首先要寫TXB8。如果小于9位,則忽略TXB8

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

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

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

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

UPM1:0奇偶校驗(yàn)?zāi)J健H绻r?yàn)的結(jié)果不匹配(有錯(cuò)誤)那么就將UCSRA中PE置位。

UPM1

UPM0

奇偶模式

0

0

禁止

0

1

保留

1

0

偶校驗(yàn)

1

1

奇校驗(yàn)

USBS:停止位選擇。當(dāng)為“0”時(shí),一位停止位,當(dāng)為“1”時(shí),兩位停止位。通過這一位可以設(shè)置停止位的位數(shù),接收器忽略此位設(shè)置。

UCSZ1:0 字符長度。

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

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沒有數(shù)據(jù)傳輸,線路空閑時(shí)必須保持高電平。


時(shí)鐘工作模式

波特率計(jì)算公式

寄存器UBRR值計(jì)算公式

普通異步模式

UBRR=

UBRR=

倍速異步模式

BAUD=

UBRR=

主機(jī)同步模式

BAUD=

UBRR=


#include

//函數(shù)聲明

voiddelay(unsignedinttime);

voidUSART_Init();

voidUSART_Transmit(unsignedchardata);

//主函數(shù)

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;}

}

}

//延時(shí)函數(shù)

voiddelay(unsignedinttime)

{

unsignedintj;

for(;time>0;time--)

{

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

}

}

//初始化串口

voidUSART_Init()

{

//波特率設(shè)置

UBRR1H=0x00;

UBRR1L=0x2f;

UCSR1A=UCSR0A&0x02;

//UCSR0B=(1<

//UCSR0C=(3<

//數(shù)據(jù)發(fā)送設(shè)置

UCSR1B=0x18;

UCSR1C=0x06;

}

//數(shù)據(jù)傳輸

voidUSART_Transmit(unsignedchardata)

{

//while(!(UCSR0A&(1<

while(!(UCSR1A)&0x20);

UDR1=data;

}


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

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

關(guān)鍵字: uart usart

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

關(guān)鍵字: stm32f30x usart 串口 初始化順序

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

關(guān)鍵字: atmega16 avr單片機(jī) usart 串行通信

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

關(guān)鍵字: STM32 usart

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

關(guān)鍵字: atmega16 avr單片機(jī) usart 串行通信

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

關(guān)鍵字: STM32 usart 串口通信

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

關(guān)鍵字: STM32 usart

Xmega128的串口非常強(qiáng)大,最多能支持8個(gè)串口。串口又有四種模式:1、異步2、同步3、IRDA紅外模式4、SPI主模式今天我們就使用CVAVR代碼向?qū)珊唵未跍y試程序,實(shí)現(xiàn)每1s打印“HELLO WORLD”字符...

關(guān)鍵字: usart xmega128 串口

//------------------------------------------------------------------------------//ATMEGA16與PC機(jī)的通信實(shí)驗(yàn)1//PC機(jī)發(fā)送一個(gè)字...

關(guān)鍵字: atmega16 avr單片機(jī) usart 串行通信

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

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