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

📄 uart.c

📁 基于GSM无线温度检测系统
💻 C
字号:
#include "common.h"
#include "UART.h"
#include<avr/interrupt.h>

uchar Send_Buf;     //发送数据绶冲区
uchar Recv_Buf;    //接收数据缓冲区


//接收中断****************************************************************//
/*
SIGNAL (SIG_UART_RECV)
{
    uchar  c= UDR;
	
	Recv_Buf= c;
	Send_Buf= Recv_Buf ;
	UDR= Send_Buf ;
		
}*/


//发送中断****************************************************************//				
/*
SIGNAL (SIG_UART_TRANS)
{
	//在执行中断过程中,判断并改写 寄存器状态
}
*/

//初始化设置**************************************************************//
void Uart_Init(void)
{
	//接收使能、发送使能、接收中断允许、发送中断允许
	UCSRB=(1<<RXEN)|(1<<TXEN)|(1<<RXCIE)|(1<<TXCIE);	  
	UBRRL= (fosc/16/(baud+1)) % 256;
	UBRRH= (fosc/16/(baud+1)) / 256;
	UCSRC= (1<<URSEL) | (1<<UCSZ1) | (1<<UCSZ0);  //8位数据 +1位STOP位
//	sei();											//总中断允许
}


//发送字符函数************************************************************//
void Uart_PutChar(uchar data)
{
   while ( !( UCSRA & (1<<UDRE)) )             //等待发送缓冲器为空
   ;
   UDR = data;                                  //将数据放入缓冲器,发送数据
}


//发送字符串函数**********************************************************//
void Uart_PutString(uchar* p)
{
    uchar* temp;
    temp=p;
	while(!(*temp=='\0'))
	{
	   Uart_PutChar(*temp);
	   temp++;
	}
	Uart_PutChar(0x0D);
}  


//接收字符函数************************************************************//
uchar Uart_Recv(void)
{
   if(UCSRA & (1<<RXC))
     return UDR;
	   else  return 0;
}

/*
uchar Uart_Recv(void)
{
 
  while (!(UCSRA & (1<<RXC)))    
  ;                                       //等待接收数据
  return UDR;                            //从缓冲器中获取并返回数据
}*/


//接收字符串函数**********************************************************//
/*
void Uart_RecvString(void)
{
    uchar i=0;
    
	do
    { 
	  String_Buf[i]=Uart_Recv();
      i++;
	} while(!(String_Buf[i-1]==0x0D));
 
     for(i=0;i<20;i++)
	 {
	   String_Buf[i]=Uart_Recv();
	   delay(40);
	 } 
	 
	 String_Buf[i]='\0';
}*/

⌨️ 快捷键说明

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