问一问GSM模块发短信卡在最后一条AT指令 咋办

2019-07-21 01:35发布

u8 sim900a_send_chmessage_zc(u8*number,u8*content)
{
        //u8 cmd[100];
        printf("发送的内容是:%s",content);
        //sprintf((char*)cmd,"AT+CMGS="%s"",number);//sprintf((char*)cmd,"AT+CMGS="%s"",number);
        printf("第0步 ");
        if(sim800c_send_cmd((u8 *)"AT+CMGF=1",(u8 *)"OK",200))        return SIM_CMGF_ERR;
        printf("第一步 ");       
        if(sim800c_send_cmd((u8 *)"AT+CSCS="GSM"",(u8 *)"OK",200))        return SIM_CSCS_ERR;
        printf("第二步 ");       
        if(sim800c_send_cmd((u8 *)"AT+CSCA?",(u8 *)"OK",300))        return SIM_CSCA_ERR;
        printf("第三步 ");       
        if(sim800c_send_cmd((u8 *)"AT+CSMP=17,167,0,241",(u8 *)"OK",500))        return SIM_CSMP_ERR;//"AT+CSMP=17,0,2,25"
        printf("第四步 ");       
//        if(sim800c_send_cmd(cmd,(u8 *)">",1200))        return SIM_CMGS_ERR;
       
       
        if(sim800c_send_cmd("AT+CMGS="13420116700"",(u8 *)">",1500))        return SIM_CMGS_ERR;
       
                printf("第五步 ");
       
        // 换成if(sim800c_send_cmd("AT+CMGS="13420117592"",(u8 *)">",1500))        return SIM_CMGS_ERR;


        u3_printf("%s",content);
        printf("第6步 ");       
        //if(sim800c_send_cmd((u8 *)0x1A,(u8 *)"OK",1500))        return SIM_CMGS_SEND_FAIL;
        if(sim800c_send_cmd((u8 *)0x1A,(u8 *)"+CMGS:",1000))        return SIM_CMGS_SEND_FAIL;
        printf("第7步 ");       
        return SIM_OK;
}



串口助手显示
准备发送信息
发送的内容是:BF第0步
第一步
第二步
第三步
第四步
第五步
第6步
有时卡在第二步
大多数时候 基本是卡在第6步。

if(sim800c_send_cmd((u8 *)0x1A,(u8 *)"+CMGS:",1000))        return SIM_CMGS_SEND_FAIL;
问问这句怎么就有问题 我看了很多代码都是这样的。


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。