|
@@ -5,34 +5,23 @@
|
|
//#include <stdio.h>
|
|
//#include <stdio.h>
|
|
//// system
|
|
//// system
|
|
//#include "delay.h"
|
|
//#include "delay.h"
|
|
-//// GSM
|
|
|
|
-//#include "GSM_config.h"
|
|
|
|
|
|
+// GSM
|
|
|
|
+#include "GSM_config.h"
|
|
|
|
|
|
|
|
|
|
static char* GSM_check_cmd(char *str);
|
|
static char* GSM_check_cmd(char *str);
|
|
-<<<<<<< HEAD
|
|
|
|
-static char GSM_send_cmd(char *cmd,char *ack,uint16_t waittime);
|
|
|
|
-static char GSM_consta_check(void);
|
|
|
|
-static void GSM_get_wanip(char* ipbuf);
|
|
|
|
-static void GSM_sendData(char* fmt,...);
|
|
|
|
-
|
|
|
|
-// GSM信息 联网的GSM名称和密码
|
|
|
|
-const char* GSM_phoneNum="18782876903";
|
|
|
|
-const char* GSM_message="help me";
|
|
|
|
-=======
|
|
|
|
static void GSM_sendData(char* fmt,...);
|
|
static void GSM_sendData(char* fmt,...);
|
|
|
|
|
|
// GSM信息
|
|
// GSM信息
|
|
const char* GSM_phoneNum = "19198022169";
|
|
const char* GSM_phoneNum = "19198022169";
|
|
const char* GSM_head = "send:";
|
|
const char* GSM_head = "send:";
|
|
->>>>>>> updata
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
- * @brief 向GSM串口发送数据
|
|
|
|
- * @param fmt: 类似printf的数据格式
|
|
|
|
|
|
+ * @brief 向GSM串口发送数据
|
|
|
|
+ * @param fmt: 类似printf的数据格式
|
|
* @retval None
|
|
* @retval None
|
|
* @note None
|
|
* @note None
|
|
-*/
|
|
|
|
|
|
+ */
|
|
void GSM_sendData(char* fmt,...)
|
|
void GSM_sendData(char* fmt,...)
|
|
{
|
|
{
|
|
uint16_t i,j;
|
|
uint16_t i,j;
|
|
@@ -48,26 +37,12 @@ void GSM_sendData(char* fmt,...)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
-<<<<<<< HEAD
|
|
|
|
- * @brief 清零缓存区并清零接收标志
|
|
|
|
- * @param None
|
|
|
|
- * @retval None
|
|
|
|
- * @note None
|
|
|
|
-*/
|
|
|
|
-void GSM_clear(void)
|
|
|
|
-{
|
|
|
|
- memset(GSM_USART_RX_BUF, 0, GSM_USART_MAX_RECV_LEN);
|
|
|
|
- GSM_USART_RX_STA = 0;
|
|
|
|
-}
|
|
|
|
-/**
|
|
|
|
-=======
|
|
|
|
->>>>>>> updata
|
|
|
|
- * @brief 检测应答
|
|
|
|
- * @param str: 期待的应答结果
|
|
|
|
|
|
+ * @brief 检测应答
|
|
|
|
+ * @param str: 期待的应答结果
|
|
* @retval 0: 没有接收到期待应答
|
|
* @retval 0: 没有接收到期待应答
|
|
- * @retval !0: 其他值代表期待应答结果的位置
|
|
|
|
- * @note None
|
|
|
|
-*/
|
|
|
|
|
|
+ * @retval !0: 其他值代表期待应答结果的位置
|
|
|
|
+ * @note None
|
|
|
|
+ */
|
|
static char* GSM_check_cmd(char *str)
|
|
static char* GSM_check_cmd(char *str)
|
|
{
|
|
{
|
|
char *strx=0;
|
|
char *strx=0;
|
|
@@ -85,19 +60,15 @@ static char* GSM_check_cmd(char *str)
|
|
return strx;
|
|
return strx;
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
- * @brief 向GSM发送命令
|
|
|
|
- * @param cmd: 发送的命令字符串
|
|
|
|
- * @param ack: 期待的应答结果,如果为空,则表示不需要等待应答
|
|
|
|
- * @param waittime: 等待时间(单位:10ms)
|
|
|
|
- * @retval 0: 发送成功(得到了期待的应答结果),
|
|
|
|
- * @retval 1: 发送失败
|
|
|
|
- * @note None
|
|
|
|
-*/
|
|
|
|
-<<<<<<< HEAD
|
|
|
|
-static char GSM_send_cmd(char *cmd,char *ack,uint16_t waittime)
|
|
|
|
-=======
|
|
|
|
|
|
+ * @brief 向GSM发送命令
|
|
|
|
+ * @param cmd: 发送的命令字符串
|
|
|
|
+ * @param ack: 期待的应答结果,如果为空,则表示不需要等待应答
|
|
|
|
+ * @param waittime: 等待时间(单位:10ms)
|
|
|
|
+ * @retval 0: 发送成功(得到了期待的应答结果),
|
|
|
|
+ * @retval 1: 发送失败
|
|
|
|
+ * @note None
|
|
|
|
+ */
|
|
char GSM_send_cmd(char *cmd,char *ack,uint16_t waittime)
|
|
char GSM_send_cmd(char *cmd,char *ack,uint16_t waittime)
|
|
->>>>>>> updata
|
|
|
|
{
|
|
{
|
|
char res=0;
|
|
char res=0;
|
|
GSM_USART_RX_STA=0;
|
|
GSM_USART_RX_STA=0;
|
|
@@ -110,15 +81,11 @@ char GSM_send_cmd(char *cmd,char *ack,uint16_t waittime)
|
|
DELAYClass.DelayMs(10);
|
|
DELAYClass.DelayMs(10);
|
|
if(GSM_USART_RX_STA&0X8000)//接收到期待的应答结果
|
|
if(GSM_USART_RX_STA&0X8000)//接收到期待的应答结果
|
|
{
|
|
{
|
|
-<<<<<<< HEAD
|
|
|
|
- if(*GSM_check_cmd(ack))
|
|
|
|
-=======
|
|
|
|
if(GSM_check_cmd(ack) != ((void *)0))
|
|
if(GSM_check_cmd(ack) != ((void *)0))
|
|
->>>>>>> updata
|
|
|
|
{
|
|
{
|
|
break; // 得到有效数据
|
|
break; // 得到有效数据
|
|
}
|
|
}
|
|
- GSM_USART_RX_STA=0;
|
|
|
|
|
|
+ GSM_USART_RX_STA=0;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
if(waittime==0)res=1;
|
|
if(waittime==0)res=1;
|
|
@@ -126,19 +93,11 @@ char GSM_send_cmd(char *cmd,char *ack,uint16_t waittime)
|
|
return res;
|
|
return res;
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
-<<<<<<< HEAD
|
|
|
|
- * @brief 发送短信
|
|
|
|
- * @param None
|
|
|
|
- * @retval None
|
|
|
|
- * @note None
|
|
|
|
-*/
|
|
|
|
-void GSM_sendMessage(void)
|
|
|
|
-=======
|
|
|
|
* @brief string转换int
|
|
* @brief string转换int
|
|
- * @param *str:字符串地址
|
|
|
|
|
|
+ * @param *str:字符串地址
|
|
* @retval 返回int型
|
|
* @retval 返回int型
|
|
* @note None
|
|
* @note None
|
|
-*/
|
|
|
|
|
|
+ */
|
|
int stringToInt(char *str)
|
|
int stringToInt(char *str)
|
|
{
|
|
{
|
|
char *p = str;
|
|
char *p = str;
|
|
@@ -152,22 +111,15 @@ int stringToInt(char *str)
|
|
return nNUM;
|
|
return nNUM;
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
- * @brief 发送短信
|
|
|
|
- * @param None
|
|
|
|
|
|
+ * @brief 发送短信
|
|
|
|
+ * @param None
|
|
* @retval None
|
|
* @retval None
|
|
-*/
|
|
|
|
|
|
+ */
|
|
void GSM_sendMessage(char *message)
|
|
void GSM_sendMessage(char *message)
|
|
->>>>>>> updata
|
|
|
|
{
|
|
{
|
|
char p[40];
|
|
char p[40];
|
|
|
|
|
|
#ifdef DEBUG_printf
|
|
#ifdef DEBUG_printf
|
|
-<<<<<<< HEAD
|
|
|
|
- printf("1. AT+CPIN?\n");
|
|
|
|
- #endif
|
|
|
|
- while(GSM_send_cmd("AT+CPIN?\r\n","OK",100)); // 查询卡状态
|
|
|
|
- #ifdef DEBUG_printf
|
|
|
|
-=======
|
|
|
|
printf("0. AT+CPIN?\n");
|
|
printf("0. AT+CPIN?\n");
|
|
#endif
|
|
#endif
|
|
while(GSM_send_cmd("AT+CPIN?\r\n","OK",100)); // 查询卡状态
|
|
while(GSM_send_cmd("AT+CPIN?\r\n","OK",100)); // 查询卡状态
|
|
@@ -176,22 +128,15 @@ void GSM_sendMessage(char *message)
|
|
#endif
|
|
#endif
|
|
while(GSM_send_cmd("AT+CMGF=1\r\n","OK",100)); // 设置TXT模式
|
|
while(GSM_send_cmd("AT+CMGF=1\r\n","OK",100)); // 设置TXT模式
|
|
#ifdef DEBUG_printf
|
|
#ifdef DEBUG_printf
|
|
->>>>>>> updata
|
|
|
|
printf("2. AT+CMGS=\n");
|
|
printf("2. AT+CMGS=\n");
|
|
#endif
|
|
#endif
|
|
sprintf((char*)p,"AT+CMGS=\"%s\"\r\n",GSM_phoneNum); // 设置目标手机号
|
|
sprintf((char*)p,"AT+CMGS=\"%s\"\r\n",GSM_phoneNum); // 设置目标手机号
|
|
while(GSM_send_cmd(p,">",100));
|
|
while(GSM_send_cmd(p,">",100));
|
|
DELAYClass.DelayMs(50);
|
|
DELAYClass.DelayMs(50);
|
|
#ifdef DEBUG_printf
|
|
#ifdef DEBUG_printf
|
|
-<<<<<<< HEAD
|
|
|
|
- printf("3. %s\n",GSM_message);
|
|
|
|
- #endif
|
|
|
|
- sprintf((char*)p,"%s\r\n",GSM_message); // 设置发送内容
|
|
|
|
-=======
|
|
|
|
printf("3. %s\n",message);
|
|
printf("3. %s\n",message);
|
|
#endif
|
|
#endif
|
|
sprintf((char*)p,"%s\r\n",message); // 设置发送内容
|
|
sprintf((char*)p,"%s\r\n",message); // 设置发送内容
|
|
->>>>>>> updata
|
|
|
|
GSM_send_cmd(p,">",100);
|
|
GSM_send_cmd(p,">",100);
|
|
DELAYClass.DelayMs(50);
|
|
DELAYClass.DelayMs(50);
|
|
#ifdef DEBUG_printf
|
|
#ifdef DEBUG_printf
|
|
@@ -199,14 +144,11 @@ void GSM_sendMessage(char *message)
|
|
#endif
|
|
#endif
|
|
USART_SendData(USART2, 0x1A); // 确认发送
|
|
USART_SendData(USART2, 0x1A); // 确认发送
|
|
}
|
|
}
|
|
-<<<<<<< HEAD
|
|
|
|
-
|
|
|
|
-=======
|
|
|
|
/**
|
|
/**
|
|
- * @brief 等待接收短信
|
|
|
|
- * @param None
|
|
|
|
|
|
+ * @brief 等待接收短信
|
|
|
|
+ * @param None
|
|
* @retval 0:无短信,!0:接收到的短信的存放地址
|
|
* @retval 0:无短信,!0:接收到的短信的存放地址
|
|
-*/
|
|
|
|
|
|
+ */
|
|
uint8_t GSM_waitMessage(void)
|
|
uint8_t GSM_waitMessage(void)
|
|
{
|
|
{
|
|
// 接收到一次数据了
|
|
// 接收到一次数据了
|
|
@@ -234,10 +176,10 @@ uint8_t GSM_waitMessage(void)
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
- * @brief 查看短信
|
|
|
|
- * @param None
|
|
|
|
|
|
+ * @brief 查看短信
|
|
|
|
+ * @param None
|
|
* @retval 返回帧头后的一个字节数据
|
|
* @retval 返回帧头后的一个字节数据
|
|
-*/
|
|
|
|
|
|
+ */
|
|
char GSM_readMessage(uint8_t addrNum)
|
|
char GSM_readMessage(uint8_t addrNum)
|
|
{
|
|
{
|
|
char pp[40];
|
|
char pp[40];
|
|
@@ -285,7 +227,6 @@ char GSM_readMessage(uint8_t addrNum)
|
|
GSM_USART_RX_STA = 0;
|
|
GSM_USART_RX_STA = 0;
|
|
return 0;
|
|
return 0;
|
|
}
|
|
}
|
|
->>>>>>> updata
|
|
|
|
/**
|
|
/**
|
|
* @brief GSM初始化
|
|
* @brief GSM初始化
|
|
* @param None
|
|
* @param None
|