<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > AVR簡(jiǎn)單的串口通信程序

AVR簡(jiǎn)單的串口通信程序

作者: 時(shí)間:2016-11-18 來(lái)源:網(wǎng)絡(luò ) 收藏
本例子是學(xué)習AVR串口通信時(shí)候編寫(xiě)的一個(gè)簡(jiǎn)單的串口通信的程序,運行的時(shí)候先向串口發(fā)送一個(gè)數據0x12,然后等待接收,當PC機發(fā)送一個(gè)數據到單片機,單片機就對這個(gè)數據進(jìn)行加1處理,然后發(fā)回到PC機顯示。以下是串口通信時(shí)候的界面和串口通信的源程序。

本文引用地址:http://dyxdggzs.com/article/201611/316047.htm

/***********************************************/

/************AVR USART串口調試****************/

/************ClimberWin 2008.6.29**************/

/*CPU:ATMEGA32L 4MHZ 外部晶振(熔斷位需要先配置好外部晶振)*/

/*說(shuō)明:AVR串口是通過(guò)UDR發(fā)送出去的,類(lèi)似于51單片機的SBUF*/

/*程序功能:能夠通過(guò)串行數據發(fā)送給PC機0x12數據,接收上位機數據并且+1后發(fā)送回上位機*/

#include <avr/io.h> //AVR I/O口定義頭文件

#include // 延時(shí)頭文件調用

#include interrupt.h> // 中斷頭文件調用

#define uchar unsigned char

//引腳定義

#define AVR_RXD 0 //PD0 RXD

#define AVR_TXD 1 //PD1 TXD

//常量定義

#define BAUDRATE 9600 //波特率定義

uchar UART_MID; //定義一個(gè)緩存區數據臨時(shí)存儲地址

/*******************串口接收中斷服務(wù)程序*************************/

SIGNAL(SIG_USART_RECV) //串口中斷服務(wù)程序

{

UART_MID=UDR; // 從緩沖器中讀取數據到UART_MID,臨時(shí)存放

UDR=UART_MID+1; //+1后發(fā)送回去數據

}

/****************************************************************/

void init_USART(void)//USART 初始化

{

//USART 9600 8, n,1 PC上位機軟件(超級終端等)也要設成同樣的設置才能通訊

UCSRC = (1<

//異步,8位數據,無(wú)奇偶校驗,一個(gè)停止位,無(wú)倍速

// UBRR=(F_CPU/BAUDRATE/16-1)

UBRRL= (F_CPU/BAUDRATE/16-1)%256;

UBRRH= (F_CPU/BAUDRATE/16-1)/256;

UCSRA = 0x00; //工作在異步正常模式下 U2X=0

UCSRB = (1<

//使能接收中斷,使能接收,使能發(fā)送

}

int main(void)

{

DDRD =(1<

PORTD =0xFF;

init_USART(); //初始化串口

UDR=0X12; //向串口發(fā)送數據

sei(); //中斷使能(avr/interrupt.h 中調用)

while (1)

{

//等待接收,接收后跳轉到中斷程序

}

}



關(guān)鍵詞: AVR串口通

評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>