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;
    }

 

 

 

 

发表回复

后才能评论