⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart1.c

📁 双龙AVR-MEGA128开发板的配套源码
💻 C
字号:
#include<iom128v.h>
#include<macros.h>
#define fosc 4000000 //晶振4MHZ
#define baud 2400	 //波特率
#define com0	
void uart0_init(void)
{
 UCSR0B = 0x00; //disable while setting baud rate
 UCSR0A = 0x00;
 UCSR0C =(1<<UCSZ01)|(1<<UCSZ00);//8bit+1bit stop
 UBRR0L=(fosc/16/(baud+1))%256;
 UBRR0H=(fosc/16/(baud+1))/256;
 UCSR0B =(1<<RXEN0)|(1<<TXEN0);//RXCEN TXCEN
}
void uart1_init(void)
{
 UCSR1B = 0x00; //disable while setting baud rate
 UCSR1A = 0x00;
 UCSR1C = (1<<UCSZ11)|(1<<UCSZ10);//8bit+1bit stop
 UBRR1L=(fosc/16/(baud+1))%256;
 UBRR1H=(fosc/16/(baud+1))/256;
 UCSR1B =(1<<RXEN1)|(1<<TXEN1);//RXCEN TXCEN
}
void putchar0(unsigned char c)
	{	 
     while (!(UCSR0A&(1<<UDRE0)));
	 UDR0=c;    
	}
void putchar1(unsigned char c)
	{	 
     while (!(UCSR1A&(1<<UDRE1)));
	 UDR1=c;    
	}	
unsigned char getchar0(void)
  	{
	 while(!(UCSR0A& (1<<RXC0)));
     return UDR0;
	}	
unsigned char getchar1(void)
  	{
	 while(!(UCSR1A& (1<<RXC1)));
     return UDR1;
	}			
void puts0(char *s)
	{
	while (*s)
		{
		putchar0(*s);
		s++;
		}	
    putchar0(0x0a);
	putchar0(0x0d);
	}
void puts1(char *s)
	{
	while (*s)
		{
		putchar1(*s);
		s++;
		}	
    putchar1(0x0a);
	putchar1(0x0d);
	}	
void main(void)
{
 unsigned char i;
 #ifdef com0 
 	uart0_init();
 	puts0("HELLO!");
 #else
 	uart1_init();
 	puts1("HELLO!"); 
 #endif
 while(1)
    {
	 #ifdef com0
    	 if (getchar0()=='t')//按键盘t键开始测试
    	   {
    	    puts0("test ok!");
    		for (i=0;i<10;i++)
    		 {
    		  putchar0(0x30+i);
    		 }
    	    putchar0(0x0a);
    	    putchar0(0x0d); 		 
    	   }
     #else
    	 if (getchar1()=='t')//按键盘t键开始测试
    	   {
    	    puts1("test ok!");
    		for (i=0;i<10;i++)
    		 {
    		  putchar1(0x30+i);
    		 }
    	    putchar1(0x0a);
    	    putchar1(0x0d); 		 
    	   }	  
	 #endif		   	 
	}
}	
		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -