OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3580|回复: 1

扩展实验4 ATK-SIM900A GSM模块测试实验

[复制链接]

3

主题

6

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2018-2-26
在线时间
12 小时
发表于 2018-2-26 11:54:06 | 显示全部楼层 |阅读模式
1金钱
void sim900a_test(void)
{
        u8 key=0;
        u8 timex=0;
        u8 sim_ready=0;
        POINT_COLOR=RED;
        Show_Str_Mid(0,30,"ATK-SIM900A 测试程序",16,240);

        while(sim900a_send_cmd("AT","OK",100))
        {
                Show_Str(40,55,200,16,"未检测到模块!!!",16,0);   //没有数据发挥
                delay_ms(800);
                LCD_Fill(40,55,200,55+16,WHITE);
                Show_Str(40,55,200,16,"尝试连接模块...",16,0);
                delay_ms(400);  

        }          
        LCD_Fill(40,55,200,55+16,WHITE);
        key+=sim900a_send_cmd("ATE0","OK",200);//不回显



        sim900a_mtest_ui(40,30);//打印信息

        while(1)
        {
                delay_ms(10);
                sim_at_response(1);//检查GSM模块发送过来的数据,及时上传给电脑

                if(sim_ready)//SIM卡就绪.
                {
                        key=KEY_Scan(0);
                        if(key)
                        {
                                switch(key)
                                {
                                        case KEY0_PRES:
                                                sim900a_call_test();//拨号测试
                                                break;
                                        case KEY1_PRES:
                                                sim900a_sms_test();        //短信测试
                                                break;
                                        case WKUP_PRES:
                                                sim900a_gprs_test();//GPRS测试
                                                break;
                                }

                                sim900a_mtest_ui(40,30);    //打印信息

                                timex=0;
                        }                        
                }


                if(timex==0)                //2.5秒左右更新一次       
                {
                        if(sim900a_gsminfo_show(40,225)==0)
                    sim_ready=1;
                        else sim_ready=0;
                }       
                if((timex%20)==0)
          LED0=!LED0;//200ms闪烁

                timex++;         
        }        
}
进入后先检查卡是否存在,如果不存在sim_ready=0;timex++;那么下次循环就不在进入键盘扫描,也不会进入卡状态确认,一直循环下去。
是否需要将if(timex==0)改成if(timex!=0)

最佳答案

查看完整内容[请看2#楼]

为什么不会再检状态呢,times是u8类型的,自加超过255 就会溢出变成0
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

21

主题

2205

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
5136
金钱
5136
注册时间
2014-8-26
在线时间
1316 小时
发表于 2018-2-26 11:54:07 | 显示全部楼层
为什么不会再检状态呢,times是u8类型的,自加超过255 就会溢出变成0
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-23 04:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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