你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32读取SIM卡的问题

[复制链接]
chenbingjy 提问时间:2015-6-15 12:59 /
我用STM32F103R8T6读取SIM卡,用的程序是官网的智能卡库,卡是联通卡。
现在读SIM卡数据正常,读ICCID有问题不明白
/* Read Binary in ICCID --------------------------------------------------*/
    if(SC_Responce.SW1 == SC_EF_SELECTED)       //9F
    {
      SC_ADPU.Header.CLA = SC_CLA_GSM11;      //A0
      SC_ADPU.Header.INS = SC_READ_BINARY;     //B0
      SC_ADPU.Header.P1 = 0x00;
      SC_ADPU.Header.P2 = 0x00;
      SC_ADPU.Body.LC = 0x00;
      SC_ADPU.Body.LE = 10;
      SC_Handler(&SCState, &SC_ADPU, &SC_Responce);
    }
  /* Select GSMDir ---------------------------------------------------------*/
    if(((SC_Responce.SW1 << 8) | (SC_Responce.SW2)) == SC_OP_TERMINATED)      //9000
    {
         
      /* Copy the ICCID File content into ICCID_Content buffer */
      for(i = 0; i < SC_ADPU.Body.LE; i++)
      {
        ICCID_Content =  SC_Responce.Data;
      }
   for(i = 0; i < SC_ADPU.Body.LE; i++)
      {
    USART_SendData(USART1,ICCID_Content);    //98 68 00 16 51 40 02 83 52 19
       delay1(2);
   }
读了10个字节,数据是98 68 00 16 51 40 02 83 52 19
可是手机卡上的ICCID是8986,0112,8170,4100,187w。
我怎么对都对不上?是不是哪儿有问题?谢谢!

收藏 评论10 发布时间:2015-6-15 12:59

举报

10个回答
chenbingjy 回答时间:2015-6-15 14:22:42
高手支招啊!
回答时间:2015-6-15 14:38:02
本帖最后由 安 于 2015-6-15 17:09 编辑

这个和UDP发信息是一样的,号码字节高低位相反。没有具体读取过SIM卡的这个号码。网上搜的资料:
http://blog.csdn.net/hejianhua/article/details/5492399
Brady 回答时间:2015-6-15 14:51:22
本帖最后由 Brady 于 2015-6-15 14:54 编辑

没错,读出来的 98 68 00 16 51 40 02 83 52 19   是16进制, 变成2进制,  高四位与第四位互换, 再变回 16进制, 得到的就是 SIM卡背面的数字了。-------------------------------又想了一下, 发现有点不对,,,  所以前面说的作废。。。
lkl0305 回答时间:2015-6-15 23:50:52
学习学习
alvin_ 回答时间:2015-6-16 12:00:38
是不是时序图没搞清楚?
拼命三郎V5 回答时间:2015-6-16 12:14:00
路过帮顶
小蚂蚁快溜跑 回答时间:2015-6-16 12:59:39
跟着学习,自己学的这方面也不是很明白
wambob 回答时间:2015-6-16 13:34:58
前面几位反了,后面不着边了
mark0668 回答时间:2015-6-16 13:47:38
学习学习
12下一页
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版