查看: 3389|回复: 9

[原创] YL-LK26Z板之 GSM模块的电话本操作

[复制链接]
  • TA的每日心情
    开心
    2019-7-11 19:28
  • 签到天数: 141 天

    连续签到: 1 天

    [LV.7]常住居民III

    34

    主题

    1067

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2492
    最后登录
    2020-9-16
    发表于 2015-10-14 14:16:03 | 显示全部楼层 |阅读模式
    GSM的电话本是放到SIM卡中,分别是存储和读取,使用指令为 AT+CPBR=1和AT+CPBW=1,"XXXXXX" 程序流程,
    1,初始化模块
    2,读取SIM卡的短信, 这里只有 存电话本指令,和读电话本指令可以使用
    3, 如果是存电话本,格式是 TEL:1.XXXXXX, 把后面的XXXX存入第一个电话本位置,
    4,如果是读取电话本,格式是 TEL?, 这里连读到取9个电话本,并把内容以短信格式回发
    1. /*
    2. 针对短信内容进行处理

    3. */
    4. INT8U sms_event_deal(INT8U *str,INT8U *str_tel,INT8U *str_code)
    5. {   INT32U i;
    6.           INT8U j,t;
    7.           INT8U tmp_buf[25];
    8.           INT8U tmp_buf2[4];  
    9.            /*
    10.              格式:TEL:1,15000298662
    11.              功能:向SIM卡里的电话本内存一个号码,号码为150XXXX
    12.             */
    13.               i= strsearch("TEL:",str_code);
    14.                           if(i)//i为当前内容所在位置+1
    15.         {  i=i+3;j=0;
    16.                                          if(str_code[i]>'0'&&str_code[i]<'9')
    17.                                          {    j=str_code[i]-'0';i++;
    18.                                          }
    19.                                          if(str_code[i]==','||str_code[i]<'.')
    20.                                          {i=i+1;}
    21.                                          else  return (0);
    22.                                         //向 tmp_buf里放入电话号码,这里一定要是数字,否可能失败
    23.                                          for(t=0;t<20;t++)
    24.                                           {   if(str_code[i]==0)  break;
    25.                                                         tmp_buf[t]=str_code[i++];
    26.                                                 }
    27.                                           tmp_buf[t]=0;
    28.                                         /* SIM卡内的电话本存入方式
    29.                                                  AT+CPBW=1,"15000298662"
    30.                                                
    31.                                                 */
    32.                                                 i=0;tmp_buf2[i++]=(j/10)+'0';tmp_buf2[i++]=(j%10)+'0';
    33.                                                 tmp_buf2[i++]= ',';
    34.                                                 tmp_buf2[i++]=0;
    35.                                                 //进行AT指令组织及发送
    36.                                                  strcpya(str,"AT+CPBW=");strcata(str,tmp_buf2);  
    37.                                                  strcata(str,""");  
    38.                                                  strcata(str,tmp_buf); strcata(str,""");   
    39.                          strcata(str,"\x0d");com1_send(str);
    40.                                                         myDelay(500);
    41.                                                 //---------------------------
    42.                                                 //存完内容后回一条短信,表示已经存上子
    43.                                                 gms_sms_send(str,str_tel,"TEL OK!");
    44.                                                   return (1);
    45.                                 }                                
    46.       /*
    47.              格式:TEL?
    48.              功能:向SIM卡里的电话本内1-9的所有号码,
    49.             */
    50.                                 i= strsearch("TEL?",str_code);
    51.                           if(i)//i为当前内容所在位置+1
    52.                                 {  //这里直接进行内容处理
    53.                                          /*
    54.                                           电话本读取格式是,
    55.                                            AT+CPBR=1
    56.                                            AT+CPBR=2
    57.                                            AT+CPBR=3
    58.                                          回复格式:
    59.                                         AT+CPBR=1
    60.           +CPBR: 1,"13818120592",129,""
    61.            OK
    62.                                         */
    63.                                          str_code[0]=0;
    64.                                          for(t=1;t<10;t++)
    65.                                           {  if(t!=1) //内容回复格式之1  
    66.                                                          {  strcata(str_code," \x0a");
    67.                                                          }
    68.                                                        
    69.                                                          i=0;tmp_buf2[i++]=(t/10)+'0';tmp_buf2[i++]=(t%10)+'0';tmp_buf2[i++]= 0;  
    70.                                                  
    71.                                                          //进行AT指令组织及发送
    72.                                                    strcpya(str,"AT+CPBR=");strcata(str,tmp_buf2);   
    73.                            strcata(str,"\x0d");
    74.                                                 //因为要读取电话本,所以这里要进行等待并查询接收区内容
    75.                                                         i=com1_send(tmp_buff);
    76.                                                   for(j=0;j<20;j++)
    77.                                            {          myDelay(2);
    78.                                                if(at_cont2)
    79.                                                                  {        myDelay(30);
    80.                                                                          i= strsearch("+CPBR: ",at_buff2);
    81.                                                   {break;    }        
    82.                                                                 }       
    83.                                             }
    84.                                                  
    85.                                                  if(i)
    86.                                                  {  i= strsearch("+CPBR: ",at_buff2);
    87.                                               if(i)
    88.                                               {          strcata(str_code,tmp_buf2); //内容回复格式之1
    89.                                                           strcata(str_code,",");           
    90.                                                                         j=i+9;i=0;
    91.                                                                                 do
    92.                                                                                 { tmp_buf[i++]= at_buff2[j++];
    93.                                                                                 if( at_buff2[j]=='"')
    94.                                                                                  { tmp_buf[i++]=0;
    95.                                                                                         break;  }   
    96.                                                                                 }while(i<20);   
    97.                                                              strcata(str_code,tmp_buf);
    98.                                                                 }
    99.                                        }
    100.                                                        
    101.                                                         myDelay(10);
    102.                                                         //---------------
    103.                                                 }//for
    104.             //查完后进行回复
    105.                                                         gms_sms_send(str,str_tel,str_code);
    106.                                                   return (1);
    107.                                 }

    108.                                
    109.    return (0);
    110. }
    复制代码
    调试效果,串口监听到的数据
    123445.png
    硬件连接图 :
    GSM-连接图.jpg

    附件:
    GSM-phone-book.zip (963.8 KB, 下载次数: 9)
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2017-2-9 14:16
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    25

    主题

    1785

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2250
    最后登录
    2024-6-11
    发表于 2015-10-14 15:04:39 | 显示全部楼层
    不错,谢谢楼主分享,手机马上就出炉了
    freescaleic.org.png
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-6 07:38
  • 签到天数: 736 天

    连续签到: 1 天

    [LV.9]以坛为家II

    21

    主题

    3486

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    5093
    最后登录
    2024-1-7
    发表于 2015-10-14 15:25:07 | 显示全部楼层
    谢谢分享!
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-9-20 20:56
  • 签到天数: 20 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    12

    主题

    449

    帖子

    0

    高级会员

    Rank: 4

    积分
    984
    最后登录
    2018-9-20
    发表于 2015-10-14 16:50:54 | 显示全部楼层
    谢谢分享
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2018-7-4 07:07
  • 签到天数: 24 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    22

    主题

    513

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    2043
    最后登录
    2018-8-15
    发表于 2015-10-14 17:09:18 | 显示全部楼层
    谢谢分享
    该会员没有填写今日想说内容.
    回复

    使用道具 举报

    该用户从未签到

    7

    主题

    243

    帖子

    0

    高级会员

    Rank: 4

    积分
    856
    最后登录
    2016-6-11
    发表于 2015-10-14 21:31:17 | 显示全部楼层
    感谢分享
    回复

    使用道具 举报

    该用户从未签到

    3

    主题

    115

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    369
    最后登录
    2022-10-25
    发表于 2015-10-15 08:58:21 | 显示全部楼层
    感谢分享
    回复

    使用道具 举报

    该用户从未签到

    2

    主题

    189

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    244
    最后登录
    2020-10-19
    发表于 2015-10-24 16:02:26 | 显示全部楼层
    谢谢,楼主辛苦了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2017-2-3 09:41
  • 签到天数: 17 天

    连续签到: 1 天

    [LV.4]偶尔看看III

    3

    主题

    732

    帖子

    0

    金牌会员

    Rank: 6Rank: 6

    积分
    1802
    最后登录
    1970-1-1
    发表于 2015-12-23 10:43:47 | 显示全部楼层
    有时间买个GSM玩玩也不错
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-1-6 07:38
  • 签到天数: 736 天

    连续签到: 1 天

    [LV.9]以坛为家II

    21

    主题

    3486

    帖子

    6

    金牌会员

    Rank: 6Rank: 6

    积分
    5093
    最后登录
    2024-1-7
    发表于 2015-12-25 10:31:06 | 显示全部楼层
    好东西,好好学习一下
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-23 10:37 , Processed in 0.105622 second(s), 28 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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