2 summer12121 summer12121 于 2015.05.26 10:38 提问

凌阳SPCE061A控制GTM900B发短信的程序老是搞不好,有哪位大神可以帮我看看

#include
char ATE0[]="ATE0\r\n";
char CREG_CMD[]="AT+CREG?\r\n";
char SMS_send[]="AT+CMGS=18\r\n";
char ATCN[]="AT+CNMI=2,1\r\n";
char CMGF[]="AT+CMGF=1\r\n";
char CMGR[12]="AT+CMGR=1\r\n";
char CMGD[12]="AT+CMGD=1\r\n";

char info[]="the temperature is too high";
//char AT[]="AT\r\n";

//char CMGF[]="AT+CMGF=1\r\n"; // 设置短信为TEXT:1格式,PDU:0
//char CMGS[]="AT+CMGS=\"18233557958\"\r\n";
//*P_IR_Ctrl = 0x0000; //红外通信控制单元P_IR_Ctrl仅使用b2位RXEN为1禁止接收;为0允许接收
//========================================================================
// 语法格式: int cmpstr(char string1[],char string2[])
// 实现功能: 比较两个字符串
// 参数: i

// 返回值: *s-*t
//========================================================================
/*int strcmp(char *s, char *t)
{

for(;*s==*t;s++,t++) 1
if(*s==0)

return 0;

return *s-*t;}

*/

//========================================================================
// 语法格式: void Delay(unsigned int i)
// 实现功能: 延时一段时间(不精确)
// 参数: i 延时的长短
// 返回值: 无
//========================================================================
void Delay(int ms)// 延时子程序
{
char i;
while(ms--)
{
for(i=0;i<120;i++)
*P_Watchdog_Clear = 0x1;
}
}

//=============================================================
// 语法格式: void UART_Init(void);
// 实现功能: UART初始化
// 参数: 无
// 返回值: 无
//=============================================================
void UART_Init(void)
{
*P_UART_Data = 0x0000;
*P_IOB_Dir = 0x0400; //0000 0100 0000 0000,IOB10设为同向输出口1(TX),IOB7设为悬浮输入口0(RX),RX指receive,TX是指transmit,0为输入,1为输出
*P_IOB_Attrib |= 0x0480; //0000 0100 1000 0000,设置为1具有唤醒功能

// *P_IOB_Dir &= 0xff7f; //1111 1111 0111 1111

// *P_IOB_Buffer &= 0xfb7f; //1111 1011 0111 1111
// *P_IR_Ctrl=0x0000;

*P_UART_BaudScalarLow = 0x00;
*P_UART_BaudScalarHigh = 0x14;                      // 波特率设为2400

*P_UART_Command1 =0xc0;                         
*P_UART_Command2 =0xc0; 

}

//=============================================================
// 语法格式: void UART_SendChar(char cData);
// 实现功能: 通过UART的数据发送端口,串行发送一个字符数据
// 参数: cData: 待发送的字符数据
// 返回值: 无
//=============================================================
void UART_SendChar( char cData)
{
int i=0x0040,s;
*P_UART_Data = cData;
s=*P_UART_Command2&i;
while(s=0)
{
*P_UART_Data = cData;
s=P_UART_Command2&&i;
}
*P_UART_Data = cData;
*P_Watchdog_Clear = 0x1;

}

//P_UART_Data (7023H) (读/写)单元可以用于接收和发送缓冲数据,向该单元写入数据,可以将要发送的数据送入寄存器;从该单元读取,可以从寄存器读出数据字节。

//=============================================================
// 语法格式: void UART_SendCommand(char * cmd)
// 实现功能: 利用UART发送一个字符串
// 参数: cmd 待发送的字符串
// 返回值: 无
//=============================================================
void UART_SendCommand(char * cmd)
{
while(*cmd!='\0') //'\0'字符串结束标志,字符串是系统自动加上结束符的
{
UART_SendChar(*cmd);
cmd++; //一个字符一个字符地发送,直到发送完毕
Delay(8);
}
Delay(8);
}

//====================================================
// 语法格式:void GPRS_Init(void)
// 功能描述: GPRS初始化函数
// 入口参数: 无
// 出口参数: 无
//====================================================

void GPRS_Init(void)
{
UART_SendCommand(ATE0);
Delay(10);

    UART_SendCommand(ATCN);
    Delay(10);

    UART_SendCommand(CMGF);
    Delay(10);


    UART_SendCommand(CREG_CMD);
    Delay(10);

// int i=0;
// UART_SendCommand("AT+IPR=2400\r\n");
// UART_SendCommand(AT);
// UART_SendCommand(CMGF);

/* while(i<5)
{
i++;
UART_SendCommand("AT+CSMP=17,167,0,0\r\n"); // 发送ASCII短信
Delay(1000);
}*/
}

//====================================================
// 语法格式:void Info_Send()
// 功能描述: 短信发送函数
// 入口参数: 无
// 出口参数: 无
//====================================================
void Info_Send(void)
{
UART_SendCommand(SMS_send); //发送中文短信
Delay(10);

// UART_SendCommand(Sms2_Pdu); //发短信内容
// delay(10);

UART_SendChar(0x1A);      //发送结束符号
Delay(500);

UART_SendCommand("ATD18233557958;\r\n"); //打电话

// while(1);
/* UART_SendCommand(CMGS);

Delay(10);
UART_SendCommand(info); //发送短信
UART_SendChar(0x1A); //发送结束符号
Delay(20);*/
}

//====================================================
// 语法格式:void main(void)
// 功能描述: 主函数
// 入口参数: 无
// 出口参数: 无
//====================================================
void main (void)

{
*P_SystemClock = C_Fosc_49M | C_Fosc;
UART_Init();
GPRS_Init();
Info_Send();
*P_Watchdog_Clear = 0x1;
}

2个回答

devmiao
devmiao   Ds   Rxr 2015.05.26 10:42

这种硬件的程序,最好请开发厂商派几个工程师帮你们一起调试。

summer12121
summer12121 这是我正在做的毕设题目。。。。。不会做了,在淘宝上问人也没有人会用凌阳的开发板
2 年多之前 回复
u014789216
u014789216   2016.02.29 10:44

看门狗那一句好像有问题。

Csdn user default icon
上传中...
上传图片
插入图片