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

📄 gprs.c

📁 usoc在北京博创兴业有限公司的实验平台s3c2410上运行。 2. 各实验的全部源代码分别存放在各实验目录下面。
💻 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 + -