单片机发送GPRS程序
#include <msp430f5438a.h>
#include <stdlib.h>#include <string.h>
#include "config.h"
//#include "24c64.h"
#define CPU_F ((double)8000000)
#define delay_us(x) __delay_cycles((long)(CPU_F*(double)x/1000000.0))
#define delay_ms(x) __delay_cycles((long)(CPU_F*(double)x/1000.0))
/*****************************************************************************
* 函数声明区
*****************************************************************************/
void Init_RS232(void);
void RS232_SENDstr(char *tx_buf);
/******************************************************************************
* 变量定义区
******************************************************************************/
#define GprsFuse 0x02
#define GprsTure 0x01
uchar GprsState = 0;
unsigned RX_buffer=0;
unsigned RX_at=0;
uchar SendBuff[512] = {0};//12345678901234567890123456789012345678901234567890123456789012345678901234567890
//uchar SendBuff[1024] = {0};
uchar ATBuff[256] = {0};
//uchar DemoBuff[100] = {0};//abcdefghigklmnopqrstuvwxyzabcdefghijklm
//uint bysendpt = 0;
//uint byrecpt = 0;
//char bystartcomm = 0;
//uint byatsendpt =0;
//uint byatrecpt =0;
//char byatcomm = 0;
uint gprsreclen=0;
uint gprssendwritept=0;
uint gprssendreadpt=0;
//***********************************************************************
// 系统时钟初始化,XT1=32.768K晶振,XT2=8M晶振
//***********************************************************************
void Clock_Init_Ex32768()
{
P5SEL |= BIT2 + BIT3; // 端口功能选择振荡器
P7SEL |= BIT0 + BIT1;
UCSCTL6 &= ~XT2OFF+~XT1OFF;
UCSCTL4 |= SELA_0 + SELM_5 + SELS_5; //ACLK为32.768KHZ,MCLK为8MHZ,SMCLK为8MHZ
do
{
UCSCTL7 &= ~(XT2OFFG + XT1LFOFFG + XT1HFOFFG + DCOFFG); // 清除 XT2,XT1,DCO 错误标志
SFRIFG1 &= ~OFIFG;
}while(SFRIFG1&OFIFG); // 检测振荡器错误标志
}
static unsigned long OpenGprs()//static unsigned long
{
//uchar readdata = 0; //GPRS开机标志,1表示开机成功
P6DIR |= BIT3;
//P4DIR &= ~BIT0;
P6OUT |= BIT3; //GPRS TURN ON
//P4OUT |= BIT2;
delay_ms(1500);
P6OUT &= ~BIT3;
delay_ms(20);
// P4OUT |= BIT1; //GPRS TURN ON
// delay_ms(220);
// P4OUT &= ~BIT1;
//readdata = P4IN;
//readdata = readdata & BIT0;
//return readdata;//(P4IN & BIT0);//readdata;
return 0;
}
void ShutdownGprs()
{
P6DIR |= BIT3;
//P4DIR &= ~BIT0;
P6OUT |= BIT3; //GPRS shout down
//P4OUT |= BIT2;
delay_ms(1500);
P6OUT &= ~BIT3;
delay_ms(20);
}
void SendAtCmd( char const * atcmd)
{
unsigned char len;
len = strlen(atcmd);
memcpy(