野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10922|回复: 6

为什么在KEY.c中调用GSM发短信函数和打电话函数总是死循环

[复制链接]
发表于 2015-6-27 17:12:01 | 显示全部楼层 |阅读模式
在main函数中可以打电话,发短信,在KEY.c中就不行了,在KEY.c中执行完打电话后一直都在这里循环发不了信息,其他程序也不执行了?????

//»ñÈ¡½ÓÊÕµ½µÄÊý¾ÝºÍ³¤¶È
char *get_rebuff(uint8_t *len)
{
    *len = uart_p;
    return (char *)&uart_buff;
}
void clean_rebuff(void)
{
    uart_p = 0;
}


char * sim900a_waitask(uint8_t waitask_hook(void))      //µÈ´ýÓÐÊý¾ÝÓ¦´ð
{
    uint8_t len;
    char *redata;
    do{
        redata = SIM900A_RX(len);   //½ÓÊÕÊý¾Ý
        if(waitask_hook!=0)
        {
            if(waitask_hook()==SIM900A_TRUE)           //·µ»Ø SIM900A_TRUE ±íʾ¼ì²âµ½Ê¼þ£¬ÐèÒªÍ˳ö
            {
                redata = 0;
                return redata;               
            }
        }
    }while(len==0);                 //½ÓÊÕÊý¾ÝΪ0ʱһֱµÈ´ý
   
   
    SIM900A_DELAY(20);              //ÑÓʱ£¬È·±£ÄܽÓÊÕµ½È«²¿Êý¾Ý£¨115200²¨ÌØÂÊÏ£¬Ã¿msÄܽÓÊÕ11.52¸ö×Ö½Ú£©
    return redata;
}
我采用的是调用函数的方式执行,发短信,打电话的
int GSMbaojing()
  {
     sim900a_call("112");                      //²¦´ò112µç»°²âÊÔ
     rebuff = sim900a_waitask(0);
   
    if(strstr(rebuff,"OK") != NULL)           //ÏìÓ¦OK£¬±íʾģ¿éÕý³£½ÓÊÕµ½ÃüÁî
    {
      printf("\r\nÕýÔÚºô½Ð\r\n");
      SIM900A_CLEAN_RX();                     //Çå³ý½ÓÊÕ»º³åÇø
      rebuff = sim900a_waitask(0);            //ÖØеȴýÏûÏ¢
     
      if(strstr(rebuff,"NO CARRIER") != NULL) //ÏìÓ¦NO CARRIER,ͨ»°½áÊø
       {
         printf("\r\nͨ»°½áÊø\r\n");
       }
      else if(strstr(rebuff,"NO ANSWER") != NULL)   //ÏìÓ¦NO ANSWER£¬ÎÞÈ˽ÓÌý
      {
        printf("\r\nÄ㲦´òµÄµç»°ÔÝʱÎÞÈ˽ÓÌý£¬ÇëÉÔºóÔÙ²¦\r\n");
      }  
    }
  //    //ÖÁÉÙ¼ä¸ô5sÔÙ·¢µÚ¶þÌõ¶ÌÐÅ
    SIM900A_DELAY(1000);   
   
    //ÖÐÓ¢ÎĶÌÐÅ£¬Êµ¼Ê²âÊÔʱÇë°Ñµç»°ºÅÂëÐ޸ijÉÒª½ÓÊÕ¶ÌÐŵÄÊÖ»úºÅ
    sim900a_sms((char *)num,"Ö÷ÈË£¬¿ì»Ø¼Ò£¬¿ì»Ø¼Ò£¬¼ÒÀïÓÐÄ°ÉúÈËÈëÇÖ£¡£¡£¡");  
  printf("\r\nÖ÷ÈË£¬¿ì»Ø¼Ò£¬¿ì»Ø¼Ò£¬¼ÒÀïÓÐÄ°ÉúÈËÈëÇÖ£¡£¡£¡ÒÑ·¢ËÍÖÁ£º%s£¬Îª·½±ã²âÊÔ£¬ÇëÔÚ³ÌÐòÖÐÐ޸ĽÓÊÕ¶ÌÐŵÄÊÖ»úºÅÂë",num);
  return 0;
  }
如果不采用函数的方式执行,发短信,打电话的话也会进入死循环


回复

使用道具 举报

 楼主| 发表于 2015-6-29 14:45:37 | 显示全部楼层
我也是醉了!!!
回复 支持 反对

使用道具 举报

发表于 2015-7-2 09:03:10 | 显示全部楼层
没理解,跟key.c有什么关系
回复 支持 反对

使用道具 举报

发表于 2015-7-2 09:03:30 | 显示全部楼层
没理解,跟key.c有什么关系
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-2 23:16:46 | 显示全部楼层
flyleaf 发表于 2015-7-2 09:03
没理解,跟key.c有什么关系

在KEY.C中执行始发短信和打电话,始终执行进入了死循环!
回复 支持 反对

使用道具 举报

发表于 2015-7-8 11:37:57 | 显示全部楼层
乱七八糟,写好一点更好观看。。。
回复 支持 反对

使用道具 举报

发表于 2015-8-12 15:53:27 | 显示全部楼层
老鹰123 发表于 2015-7-2 23:16
在KEY.C中执行始发短信和打电话,始终执行进入了死循环!

解决了吗?我也遇到同样的问题。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 16:26 , Processed in 0.029086 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表