📄 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 + -