?? uart.c.bak
字號:
// **************************************************************
// *** 廣 州 天 河 雙 龍 電 子 公 司 ***
// *** http://www.sl.com.cn ***
// *** 實驗: UART ***
// *** 作者:zxy@sl.com.cn ***
// *** 2006年3月28日 ***
// *** 目標MCU:MEGA169 晶振:內部(INT)8MHZ ***
// **************************************************************
//本實驗需相關軟件配合如:comdebug.exe
#include <iom169v.h>
#include <macros.h>
#define fosc 8000000
#define baud 19200
void port_init()
{
PORTE=0xff;
DDRE=0xff;
}
//URAT的1口
void uart1_init(void)
{
UCSR0B = 0x00; //設置波特率時關閉發送和接收
UCSR0A = 0x00;
UBRRL=(fosc/16/(baud+1))%256;
UBRRH=(fosc/16/(baud+1))/256;//設置波特率
UCSR0C =(1<<UCSZ1)|(1<<UCSZ0);//8位數據+1位STOP位
UCSR0B =(1<<RXEN)|(1<<TXEN);//允許發送和接收
}
void putchar1(unsigned char c)
{
while (!(UCSRA&(1<<UDRE0)));//判斷上次發送是否完成
UDR0=c; //發送數據
}
unsigned char getchar1(void)
{
while(!(UCSRA&(1<<RXC0)));//判斷是否接收到數據
return UDR0; //接收數據
}
//URAT的1口
void main(void)
{
unsigned char i;
port_init();
uart1_init();
while(1)
{
i=getchar1();
putchar1(i);
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -