<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與RS232——一個(gè)簡(jiǎn)單易懂的串口通訊例子程序

AVR與RS232——一個(gè)簡(jiǎn)單易懂的串口通訊例子程序

作者: 時(shí)間:2016-11-26 來(lái)源:網(wǎng)絡(luò ) 收藏
只有基本的功能,用于串口操作的演示,如果需要結構化的程序,到http://www.avrvi.com/avr_examples/usart.html

RS232電路圖



本程序在本站的開(kāi)發(fā)板上通過(guò),絕對沒(méi)有問(wèn)題,歡迎討論。
測試效果,啟動(dòng)時(shí)發(fā)送http://www.avrvi.com加回車(chē)換行,然后,收到什么,返回什么,如果給它發(fā)送一個(gè)小a,會(huì )多發(fā)回一個(gè)OK,如果發(fā)的是大A,則發(fā)回Hello字符串。

串口程序測試


// ICC-AVR application builder : 2007-5-20 17:21:25
// Target : M16
// Crystal: 7.3728Mhz
// AVR mega16 串口測試
// AVR與虛擬儀器http://www.avrvi.com古欣

#include
#include

#define F_CPU 7372800
const unsigned char buffer[]="http://www.avrvi.com";

void USART_Init( unsigned int baud )
{
unsigned int tmp;

tmp= F_CPU/baud/16-1;
UBRRH = (unsigned char)(tmp>>8);
UBRRL = (unsigned char)tmp;

UCSRB = (1<
UCSRC = (1<}


// ICC 生成的初始化
//UART0 initialize
// desired baud rate: 9600
// actual: baud rate:9600 (0.0%)
// char size: 8 bit
// parity: Disabled
void uart0_init(void)
{
UCSRB = 0x00; //disable while setting baud rate
UCSRA = 0x00;
UCSRC = BIT(URSEL) | 0x06;
UBRRL = 0x2F; //set baud rate lo
UBRRH = 0x00; //set baud rate hi
UCSRB = 0x18;
}

//下面兩個(gè)函數直接從數據手冊上拷貝過(guò)來(lái)的

// 數據發(fā)送【發(fā)送5 到8 位數據位的幀】
void USART_Transmit( unsigned char data )
{

while ( !( UCSRA & (1<;

UDR = data;
}


// 數據接收【以5 到8 個(gè)數據位的方式接收數 據幀】
unsigned char USART_Receive( void )
{

while ( !(UCSRA & (1<;

return UDR;
}

//連續發(fā)送字符
void USART_Transmit_2( void )
{
while ( !( UCSRA & (1<;
UDR = H;
while ( !( UCSRA & (1<;
UDR = e;
while ( !( UCSRA & (1<;
UDR = l;
while ( !( UCSRA & (1<;
UDR = l;
while ( !( UCSRA & (1<;
UDR = o;
}


void main(void)
{
unsigned char n=0,tmp=0;

USART_Init(9600); //波特率9600 初始化串口
// uart0_init();

for(i=0;n<20;n++) //發(fā)送數組里面的字符串,http://www.avrvi.com
{
USART_Transmit(buffer[n]);
}

USART_Transmit(0x0d); //發(fā)送一個(gè)回車(chē)
USART_Transmit(0x0a); //發(fā)送一個(gè)換行

while(1)
{
if(UCSRA&(1<{
tmp=USART_Receive(); //接收數據
USART_Transmit(tmp); //發(fā)送數據

if(tmp==a) //對接收到的數據進(jìn)行,如果是a,再發(fā)一個(gè)OK回來(lái)
{
USART_Transmit(O);
USART_Transmit(K);
}
if(tmp==A) //對接收到的數據進(jìn)行,如果是A,再發(fā)一個(gè)Hello回來(lái)
{
USART_Transmit_2();
}
}
}
}

測試效果,啟動(dòng)時(shí)發(fā)送http://www.avrvi.com加回車(chē)換行,然后,收到什么,返回什么,如果給它發(fā)送一個(gè)小a,會(huì )多發(fā)回一個(gè)OK,如果發(fā)的是大A,則發(fā)回Hello字符串。


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

評論


技術(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>