📄 serial.c
字号:
/* ATmega128 serial.c File
Author : Hawk shang
Company: Proteam
Date of Creation : 23 Oct 2003
*/
#include "logic.h"
#include <avr/interrupt.h>
#include <avr/sleep.h>
#include <avr/signal.h>
#include <avr/eeprom.h>
#include <avr/io.h>
#include <avr/pgmspace.h>
/*External Variable Lisr*/
extern unsigned char rs232DataCnt;
extern unsigned char smsDataCnt;
extern unsigned char ErrorType;
extern unsigned int _1msCounter;
extern unsigned char UART0Index;
extern unsigned char rs232Data[255];
extern unsigned char uart1Data[255];
extern unsigned char uart1_rcvDATA[1024];
extern unsigned char Uart0SendFlag;
extern unsigned char Uart1SendFlag;
extern unsigned char GPRS_Status;
extern unsigned char GPRS_Working_Status;
extern unsigned int TimeOut;
extern unsigned char ReConn_Cnt;
extern unsigned char GPRSOKFlag;
extern unsigned char ATSENDFlag;
extern unsigned char _10msFlag;
extern unsigned char _10msCnt;
extern unsigned char Read_Pointer;
extern unsigned char Write_Pointer;
/*Extern Variable List*/
extern unsigned char CheckDataType(unsigned char type, unsigned char code);
extern unsigned char Checksum(unsigned char *p,unsigned char cnt);
extern void puts0(unsigned char* str, unsigned char length);
void init_gprs(void);
void GPRSConnect(void);
void GPRSDisConnect(void);
void RS232Transmit(void);
void puts0(unsigned char *str,unsigned char length);
void Send_Return_NewLine(void);
void delayms(unsigned int count);
void GPRS_ShutDown(void);
/****************************************************
Name: InitSerial Uart0
Input:none
Output:none
Function: 1.set the parameter of UART0~1
2.clear the data
3.enable interrupt
3.open the UART
4.baudrate 19200,8 databit,1 stopbit,No parity
*****************************************************/
void InitSerial(void)
{
//unsigned char i;
//open UART0 transmit and receive, and enable recevie complete interrupt\
PORTE = 0xEF;
DDRE = 0x0A;
UBRR0H=00;
UBRR0L=0x33;
UCSR0C=0X86;
UCSR0B=0XD8;
UCSR0A=0X02;
Uart0SendFlag=0x00;
}
/*********************************************
Name: putchar puts
Function:
send data to serial port Uart0
***********************************************/
void putchar0(unsigned char c)
{
while (!(UCSR0A&(1<<UDRE0)));
UDR0=c;
}
void puts0(unsigned char *str,unsigned char length)
{
if(Uart0SendFlag==0x00) return;
//CLI();
while(length!=0)
{
putchar0(*str);
str++;
length--;
}
Uart0SendFlag=0x00;
//SEI();
}
void GPRSConnect(void)
{
unsigned char *con_open;
con_open=(unsigned char*)"at^siso=0";
//SEND CONNECT OPEN
Uart0SendFlag=0x01;
puts0(con_open,9);
Send_Return_NewLine();
}
void GPRSDisConnect(void)
{
unsigned char *con_close;
con_close=(unsigned char*)"at^sisc=0";
Uart0SendFlag=0x01;
puts0(con_close,9);
Send_Return_NewLine();
// delayms(100);
}
void GPRS_ShutDown(void)
{
unsigned char *con_shutdown;
con_shutdown=(unsigned char*)"at^smso";
Uart0SendFlag=0x01;
puts0(con_shutdown,7);
Send_Return_NewLine();
// delayms(100);
}
void Send_Return_NewLine(void)
{
putchar0(0x0D);
putchar0(0x0A);
}
void delayms(unsigned int count)
{
unsigned int i,j;
for(i=0;i<count;i++)
{
for(j=0;j<255;j++){};
}
}
/*Program end*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -