uint8_t GSM_Send_bz; //发送标志位
uint16_t GSM_time;//每隔500ms发送一条
uint8_t Message[50]; //发送数据存储
uint8_t GSM_flag; //发送标志
void GSM_Send(uint8_t *Message)
{
if(GSM_Send_bz==1)
{
if(GSM_flag==0)
{
GSM_flag=1;
u1_printf("AT+CMGF=1\r\n");//设置短息格式为文本模式
}
}
else if(GSM_Send_bz==2)
{
if(GSM_flag==0)
{
GSM_flag=1;
u1_printf("AT+CSMP?\r\n");//设置短消息文本模式
}
}
else if(GSM_Send_bz==3)
{
if(GSM_flag==0)
{
GSM_flag=1;
u1_printf("AT+CSMP=17,167,0,8\r\n");
}
}
else if(GSM_Send_bz == 4)
{
if(GSM_flag==0)
{
GSM_flag=1;
u1_printf("AT+CMGS=\"15055708747\"\r\n");//此处修改为对方的电话号
}
}
else if(GSM_Send_bz == 5)
{
uint8_t i;
if(GSM_flag==0)
{
GSM_flag=1;
for(i=0; i<8; i++) //i表示发送短信的长度
u1_printf("%c", Message[i]);//发送文本
u1_printf("%c",0x1A); //结束符
}
}
}
函数的调用
if(temp > temp_max)
{
sprintf((char *)Message,"%c%c%c%c%c%c%c%c",0x6E, 0x29, 0x5E, 0xA6, 0x5F, 0x02, 0x5E, 0x38);
GSM_Send_bz=1;
}
定时器的处理
if(GSM_Send_bz > 0) {GSM_time++;}
if(GSM_time >= 500)
{
/* GSM向手机发送报警 */
GSM_Send(Message);
GSM_flag=0;
GSM_time=0;
GSM_Send_bz++;
if(GSM_Send_bz > 5)
GSM_Send_bz = 0;
}
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。