AVR的uart串口通信程序
扫描二维码
随时随地手机看文章
// 1、使用ICCAVR的终端调试窗口(Terminal),进行通信调试。
// 2、对ICCAVR的终端调试窗口进行设置,设置串口为com1或com2
// 通信波特率为19200(Tools->Environment Options...)。
// 3、将PC屏幕光标定位于调试窗口中。
#include
#define fosc 8000000 //晶振8MHZ
#define baud 19200 //波特率
#define osc_address 0x1ff0
extern unsigned char read_flash(unsigned int add);
void putchar(unsigned char c)
{
while (!(UCSRA&(1< UDR=c;
}
unsigned char getchar(void)
{
while(!(UCSRA& (1< return UDR;
}
int puts(char *s)
{
while (*s)
{
putchar(*s);
s++;
}
putchar(0x0a);//回车换行
putchar(0x0d);
return 1;
}
void putstr(char *s)
{
while (*s)
{
putchar(*s);
s++;
}
}
void uart_init(void)
{
OSCCAL=read_flash(osc_address);
UCSRB=(1< UBRRL=(fosc/16/(baud+1))%6;
UBRRH=(fosc/16/(baud+1))/256;
UCSRC=(1<}
void main(void)
{
unsigned char i;
uart_init();
puts("广州天河双龙电子公司RS232通信演示程序");
puts("HTTP://WWW.SL.COM.CN");
puts("MAIL Tsllg@sl.com.cn");
while(1)
{
i=getchar();
if (i!=0)//按PC键盘开始测试
{
putstr("当前按键是:");
putchar(i);
putchar(0x0a);
putchar(0x0d);
puts("广州天河双龙电子公司RS232通信演示程序");
puts("HTTP://WWW.SL.COM.CN");
puts("MAIL Tsllg@sl.com.cn");
putchar(0x0a);
putchar(0x0d);
}
}
}