搜索
bottom↓
回复: 2

求助SIM300 ERROR 515 错的解决

[复制链接]

出0入0汤圆

发表于 2012-3-29 07:32:32 | 显示全部楼层 |阅读模式
请高手看看我的问题在哪里,顽固的515错!
SIM300初始化后发TEXT短信没问题,但发PDU短信则返回515错
该错的解释是:在初始化期间或在指令执行过程当中GSM MODEM又接受新的指令,将会出现此错误。您必须等到初始化完成或指令执行完毕。
程序如下

char Init_SIM300( void )
{
static char *n;
   
n=AT_CMD_Reply( "AT\r", "OK\r\n" );      //发AT回车变更波特率9600 应返回OK
Sim300_TXD( "AT+CSCLK=0\r" );
delay_500ms();
//n=AT_CMD_Reply( "AT+CSCS=\"GSM\"\r", "OK\r\n" );
n=AT_CMD_Reply( "AT+CSQ\r", "CSQ" );     //信号质量查询         
n=AT_CMD_Reply( "AT+CREG?\r", "+CREG: 0,1\r\n" ); //网络注_册信息CREG:0,1已注_册  

//AT+CNMI=<mode>,<mt>,<bm>,<ds>,<bfr>
//mode=0 先将通知缓存起来,再按照<mt>的值进行发送(mt=0)故不通知TE
//mt=0   接受的短消息存储到默认的内存位置(包括class 3)不通知TE
//bm=0   小区广播不通知
//ds=0   状态报告不通知
//bfr=1  始终为1
AT_CMD_Reply( "AT+CNMI=2,2,0,1,0\r", "OK" );        //新消息提示设置;
return 4;                                                                 //返回码=4,连接成功
}       

void Sim300_TXD( char *tx_str )
{
char i,len;

len = (char)strlen(tx_str);
i = 0;
while( i<len )
{
  SC550_TX_buf[TX_IN_FIFO_p] = *(tx_str+i);
  TX_IN_FIFO_p = ++TX_IN_FIFO_p & (TX_BUF_LEN-1);
  i++;
  }
_NOP();
_NOP();
_NOP();
_NOP();
}


char* AT_CMD_Reply( char *cmd, char *ans )
{
static char *n;
uchar len;
  
Sim300_TXD( cmd );                                    
delay_1s();
len = RXBUF_to_PACKBUF();
n = PACK_delay_Comp( len, ans );  // 每秒查找比较1次 找到即退出 否则持续4秒
return n;                        //n=0 没找到,否则n值为字串首址
}

/*==============================================================================
* 在定时器0中断服务程序
*=============================================================================*/
#pragma interrupt_handler timer0_ovf_isr:17
void timer0_ovf_isr(void)
/*定时器0(500uS)中断服务程序功能
*其一:
*如果16C550发送队列(256字节)的入队指针与出队指针不等,说明有新数据要发送,
  *服务程序自SC550_TX_buf向THR写入数据

*/
{
unsigned char c;

CLI();
  if( TX_OUT_FIFO_p != TX_IN_FIFO_p )
//  if( (SC550_LSR & 0X20)==0x20 ||(SC550_LSR & 0x10)== 0x10 )
   if( (SC550_LSR & 0X20)==0x20 )
     {
        c = SC550_TX_buf[ TX_OUT_FIFO_p ];
                if( c == 0x1A ) {
                    _NOP();
                        _NOP();
                        _NOP();
                        _NOP();
                        _NOP();
                        _NOP();
                        _NOP();
                        _NOP();
                        _NOP();
                        _NOP();
                        _NOP();
                        _NOP();
                  }
                SC550_THR = c;
        TX_OUT_FIFO_p = ++ TX_OUT_FIFO_p & (TX_BUF_LEN-1);
     }

       
TCNT0 = 0x8D; //reload counter value
SEI();
}
PUD发送缓冲区映像

PUD发送后接收缓冲区映像

与SIM300的接口芯片为16C550

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

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

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

出0入0汤圆

 楼主| 发表于 2012-3-29 08:54:46 | 显示全部楼层
烦请高手光顾一下

出0入0汤圆

 楼主| 发表于 2012-4-1 08:08:47 | 显示全部楼层
CAAS 发表于 2012-3-29 08:54
烦请高手光顾一下

原因找到、问题解决,是短信中心号码不正确!
望能对光顾者有帮助
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-8-26 06:21

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

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