[STM32F1] SIM卡写短消息服务参数的问题

[复制链接]
 楼主| JY-DX-JY 发表于 2015-9-15 11:58 | 显示全部楼层 |阅读模式
// Get Response on IMSI File ---------------------------------------------
   if(((SC_Responce.SW1 << 8) | (SC_Responce.SW2)) == SC_OP_TERMINATED)                                                                                                //9000
    {
                                                USART_SendData(USART1,0x13);
                                                delay1(2);
      SC_ADPU.Header.CLA = SC_CLA_GSM11;                                                //A0
      SC_ADPU.Header.INS = SC_SELECT_FILE;                                        //A4
      SC_ADPU.Header.P1 = 0x00;
      SC_ADPU.Header.P2 = 0x00;
      SC_ADPU.Body.LC = 0x02;

      for(i = 0; i < SC_ADPU.Body.LC; i++)
      {
        SC_ADPU.Body.Data[i] = DF[i];
      }
                       

      SC_ADPU.Body.LE = 0;

      SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
    }

                if(SC_Responce.SW1 == SC_EF_SELECTED)                                                        //9F
    {
                        USART_SendData(USART1,0X14);
                                                delay1(2);
                        SC_ADPU.Header.CLA = SC_CLA_GSM11;                                                //A0
      SC_ADPU.Header.INS = SC_SELECT_FILE;                                        //A4
      SC_ADPU.Header.P1 = 0x00;
      SC_ADPU.Header.P2 = 0x00;
      SC_ADPU.Body.LC = 0x02;

      for(i = 0; i < SC_ADPU.Body.LC; i++)
      {
        SC_ADPU.Body.Data[i] = DF4[i];
      }
                       

      SC_ADPU.Body.LE = 0;

      SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
                }
               
                if(SC_Responce.SW1 == SC_EF_SELECTED)                                                        //9F
    {

      USART_SendData(USART1,0X24);
                                                delay1(2);
                        SC_ADPU.Header.CLA = SC_CLA_GSM11;                                                //A0
      SC_ADPU.Header.INS = SC_WRITE_BINARY;                                        //D0
      SC_ADPU.Header.P1 = 0x00;
      SC_ADPU.Header.P2 = 0x01;
      SC_ADPU.Body.LC = 0x0f;                                                                                                        //40以内不对 0x1c(94 02)
                        SC_ADPU.Body.Data[0]=0x55;
                        SC_ADPU.Body.Data[1]=0xaa;
                        SC_ADPU.Body.Data[2]=0x15;
                        SC_ADPU.Body.Data[3]=0x06;
                        SC_ADPU.Body.Data[4]=0x26;
                       
                        i=5;
                        while(i < LC_MAX)
        {
          SC_ADPU.Body.Data[i++] = 0xff;
        }
      SC_ADPU.Body.LE = 00;
      SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
    }
我试图写SIM卡的短消息服务参数,可是不成功。
上面是我的程序,返回的错误代码是0x6d,0x00。大神看看是怎么回事?谢谢!

huangcunxiake 发表于 2015-9-15 12:35 | 显示全部楼层
楼主怎么一直在搞这个,我搜索了一下,问SIM卡的帖子全是你一个人发的,都大半年了,你这个什么项目,透露一点听听。
huangcunxiake 发表于 2015-9-15 12:45 | 显示全部楼层
给你找了个STM32与SIM300之间的通信,经实验,非常稳定,不容易产生错误,包括短信,通话等功能的资料。

不知道你用的是不是SIM300


楼主看看吧
61IC_S4459.rar (3.13 MB, 下载次数: 13)



评论

mark  发表于 2016-12-27 23:18
 楼主| JY-DX-JY 发表于 2015-9-15 12:47 | 显示全部楼层
身份*读卡器。哪有大半年?我来公司才四个多月。
你的资料我先看看。谢谢!
huangcunxiake 发表于 2015-9-15 13:11 | 显示全部楼层
JY-DX-JY 发表于 2015-9-15 12:47
身份*读卡器。哪有大半年?我来公司才四个多月。
你的资料我先看看。谢谢! ...

哈哈,楼主这个工作应该不错啊,一直在搞这个产品。
huangcunxiake 发表于 2015-9-15 13:11 | 显示全部楼层
JY-DX-JY 发表于 2015-9-15 12:47
身份*读卡器。哪有大半年?我来公司才四个多月。
你的资料我先看看。谢谢! ...

身份*读卡器怎么还要用SIM啊,远程通信?
 楼主| JY-DX-JY 发表于 2015-9-15 13:14 | 显示全部楼层
有好多款,卖给移动营业厅的当然要能读写卡
huangcunxiake 发表于 2015-9-15 13:28 | 显示全部楼层
JY-DX-JY 发表于 2015-9-15 13:14
有好多款,卖给移动营业厅的当然要能读写卡

看来你们接了个很大的单子锕
 楼主| JY-DX-JY 发表于 2015-9-15 14:56 | 显示全部楼层
不管SMS参数存在还是被删除,它的空间都会给分配。任意没用的字节,可能是参数不需要设置所有字节,或可能参数已被删除,应该把它设置为FF。
字母识别符
内容:SMS参数相关的字符标记。
编码:看EFadn。
注解:Y的值可能为0,也就是字母标示符没有用。通过命令GET RESPONSE移动终端可以检测到Y的值。
短消息服务参数文档里有上面这么一段话,我想得到短消息服务参数里的字母识别符里的Y。我用GET RESPONSE命令得到了响应,15个字节
00 00 00 C8 6F 42 04 00 11 F0 44 01 02 01 28
可是不知道什么意思。高手解惑呀!谢谢!
 楼主| JY-DX-JY 发表于 2015-9-15 15:54 | 显示全部楼层
13 14 24 90 00 25 90 00 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF 55
这是我串口打印出的信息,第一个9000代表往里写对了,第二个9000代表读也对了。可是40个数据都是FF,我很无语。
我写的数不是ff。
 楼主| JY-DX-JY 发表于 2015-9-15 16:26 | 显示全部楼层
现在发现写对了,可是只能写对一次。第二次再写就不对了。
ocon 发表于 2015-9-15 23:51 | 显示全部楼层
建议去模块厂家官网找技术支持。
sinshine 发表于 2015-9-28 13:02 | 显示全部楼层
JY-DX-JY 发表于 2015-9-15 14:56
不管SMS参数存在还是被删除,它的空间都会给分配。任意没用的字节,可能是参数不需要设置所有字节,或可能 ...

LZ这个项目做了好久了啊,上次回你还是几个月前。LZ好好看一下3GPP 11.11。

00 00 00 C8 6F 42 04 00 11 F0 44 01 02 01 28 最后一个byte表示每条record的长度(40)。
短消息服务参数的每条record长度Y+28, 减法一下,Y=12.

打赏榜单

JY-DX-JY 打赏了 0.10 元 2015-09-28

 楼主| JY-DX-JY 发表于 2015-9-28 17:17 | 显示全部楼层
谢谢大神
天灵灵地灵灵 发表于 2015-9-28 17:34 来自手机 | 显示全部楼层
楼主搞这么久了,搞好了吗?
 楼主| JY-DX-JY 发表于 2015-9-28 18:22 | 显示全部楼层
没有,还差一点点
Thor9 发表于 2015-9-28 19:44 | 显示全部楼层
去厂家官网找技术支持要资料
wahahaheihei 发表于 2015-9-28 21:36 来自手机 | 显示全部楼层
厂家有资料没
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:晴天响霹雳,平地一声雷。

245

主题

3351

帖子

30

粉丝
快速回复 在线客服 返回列表 返回顶部