搜索
bottom↓
回复: 1

关于SIM900A初始化的两段代码问题

[复制链接]

出0入0汤圆

发表于 2015-4-10 17:52:05 | 显示全部楼层 |阅读模式
本帖最后由 lu0718 于 2015-4-10 17:56 编辑

功能:上电测试AT指令后检测联网检测。放入的是欠费停机的卡,而且SIM卡在手机上也是显示无网络的。
下面这两段代码有什么不同的吗,为什么第一个代码不能用,返回竟然是已经连接了。而第二个代码是连不上的,也是正确的。

第一段(不正确)
uchar gsm_int(void)
{
        uchar ExtractTime,network;

        ExtractTime=40;
        while(ExtractTime--)
        {
                if(ExtractTime<2)//AT命令失败提示
                {
                        GPIO_ResetBits(GPIOB, GPIO_Pin_1)        ;
                        return 0;
                }
                if(gsm_start())break;       
                delaynms(250);
        }

        delaynms(200);
        network=120;//上电后连续30S的联网检测
        while(network--)
        {
                if(network<2)//联网失败提示
                {
                        GPIO_ResetBits(GPIOB, GPIO_Pin_0)        ;
                        return 0;
                }
                if(gsm_check_network())break;
                delaynms(250);
        }

        delaynms(100);
        gsm_ate0();//设置不回显
        delaynms(100);
        gsm_cnmi();//设置新消息提示
        delaynms(100);
        gsm_csdh();//设置TEXT方式参数
        delaynms(100);
        gsm_cmgf();//设置短消息为TEXT方式,0则为PDU格式
        delaynms(100);
        gsm_cpbs();//选择SM卡为电话本存储地址
        delaynms(100);
        gsm_cpms();//选择SM卡为短信存储地址
        return 1;
}

第二段(正确)
uchar gsm_int(void)
{
        uchar ExtractTime,network;
       
        ExtractTime=40;
        while(ExtractTime--)
        {
                if(gsm_start()==1)//检查SIM900A模块是否存在
                {
                        network=120;//上电后连续30S的联网检测
                        while(network--)
                        {
                                if(network<2)//联网失败提示
                                {
                                        GPIO_ResetBits(GPIOB, GPIO_Pin_0)        ;
                                        return 0;
                                }
                                if(gsm_check_network()==1)break;
                                delaynms(250);
                        }
                }
                delaynms(250);
        }
       
        delaynms(100);
        gsm_ate0();//设置不回显
        delaynms(100);
        gsm_cnmi();//设置新消息提示
        delaynms(100);
        gsm_csdh();//设置TEXT方式参数
        delaynms(100);
        gsm_cmgf();//设置短消息为TEXT方式,0则为PDU格式
        delaynms(100);
        gsm_cpbs();//选择SM卡为电话本存储地址
        delaynms(100);
        gsm_cpms();//选择SM卡为短信存储地址
        return 1;
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2015-8-16 22:53:31 | 显示全部楼层
这种情况请使用流程图,伪代码,你发的代码是个啥
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 20:16

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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