📄 gprs.c
字号:
#include "inc/lcd.h"
#include "inc/Uart.h"
#include "inc/lib.h"
#include "inc/GPRS.h"
#include "inc/reg2410.h"
void GPRS_Init()
{
//Uart_Init(2,9600);//设置开发平台的串口1波特率
LCD_printf("\n");
LCD_printf(" / : Send short message\n");
LCD_printf(" * : Call the number.\n");
LCD_printf(" - : Ring off. \n");
LCD_printf(" + : Pick up. \n");
//下面选择通道1,使用带麦克的耳机
GPRS_Cmd("AT+CHFA=1\n"); //设置通话通道为1
//hudelay(1000);
GPRS_Cmd("AT+CLVL=100\n");//设置受话器音量最大
//hudelay(1000);
GPRS_Cmd("AT+CMIC=1,10\n");//设置通道1的话筒增益
// hudelay(1000);
//下面选择通道0,使用普通电话话柄
/* GPRS_Cmd("AT+CHFA=0\n"); //设置通话通道为0
hudelay(1000);
GPRS_Cmd("AT+CLVL=100\n");//设置受话器音量最大
hudelay(1000);
GPRS_Cmd("AT+CMIC=0,10\n");//设置通道0的话筒增益
hudelay(1000);*/
}
void GPRS_HOLD()
{GPRS_Cmd("AT\n");
hudelay(1000);
GPRS_Cmd("ATH\n");//发送挂机命令ATH
}
void GPRS_ANSWER()
{ GPRS_Cmd("AT\n");
hudelay(1000);
GPRS_Cmd("ATA\n");//发送接听命令ATA
}
void GPRS_CALL(char *number)
{ GPRS_Cmd("AT\n");
hudelay(5000);
GPRS_Cmd("AT\n");
hudelay(5000);
GPRS_Cmd("ATD"); //发送拨打命令ATD
GPRS_Cmd(number);
GPRS_Cmd(";\n");
}
void GPRS_MGS(char *number,char *text) //发送短信
{ GPRS_Cmd("AT\n");
hudelay(5000);
GPRS_Cmd("AT\n");
hudelay(5000);
GPRS_Cmd("AT+CMGF=1\n"); //发送修改字符集命令
hudelay(10000);
GPRS_Cmd("AT+CMGS="); //发送发短信命令,具体格式见手册
//Uart_SendByten(2,34);//发送引号
GPRS_Cmd("\"");
GPRS_Cmd(number);
GPRS_Cmd("\"");
//Uart_SendByten(2,34);//发送引号
GPRS_Cmd("\n");
hudelay(10000);
GPRS_Cmd(text);
hudelay(5000);
//Uart_SendByte(2,26); //“CTRL+Z"的ASCII码
Uart_SendByten(2,26); //“CTRL+Z"的ASCII码
}
void GPRS_Cmd(char *pt)//串口发送命令字符串并等待回显
{int i=0,j;
char ch[1],cnt,full,xh;
while(1)
{ if(pt[i]=='\0')break;
if(pt[i]=='\n')Uart_SendByten(2,'\r');
else Uart_SendByten(2,pt[i]);
/*while(pt[i]){
Uart_SendByten(2,pt[i]);
i++;
}*/
hudelay(1000);
Uart_Getch(ch,2,0);
if (ch[0]=='\r')Uart_SendByten(0,'\n');
//else Uart_SendByten(0,ch[0]);
Uart_SendByten(0,ch[0]);
if (ch[0]=='\r')LCD_printf("\n");
else LCD_printf("%c",ch[0]);
i++;
}
hudelay(1000);
/*cnt=rUFSTAT2&0xf;
full=rUFSTAT2&0x100;
if(full)
xh=16;
else
xh=cnt;
for(j=xh;j>0;j--)*/
while(LSR&0x1)
{Uart_Getch(ch,2,0);
Uart_SendByten(0,ch[0]);
if (ch[0]=='\r')
{LCD_printf("\n");
Uart_SendByten(0,'\n');
}
else
LCD_printf("%c",ch[0]);
}
// bUART(2, oUFCON) |= 1<<1;
}
extern unsigned short up,count;
void GPRS_KeyUartPoll()//回显模块送回的信息
{ char ch[1];
unsigned short cnt,full,xh,i;
/*while((up==0)&&(count==0))
{ cnt=rUFSTAT2&0xf;
full=rUFSTAT2&0x100;
if(full)
xh=16;
else
xh=cnt;
for(i=xh;i>0;i--)
{Uart_Getch(ch,2,0);
Uart_SendByten(0,ch[0]);
if (ch[0]=='\r')LCD_printf("\n");
else LCD_printf("%c",ch[0]);
}
} */
while(LSR&0x1)
{Uart_Getch(ch,2,0);
Uart_SendByten(0,ch[0]);
if (ch[0]=='\r')LCD_printf("\n");
else LCD_printf("%c",ch[0]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -