中级会员 
   
	- 积分
 - 266
 
        - 金钱
 - 266 
 
       - 注册时间
 - 2016-9-9
 
      - 在线时间
 - 95 小时
 
 
 
 | 
 
1金钱 
我用的是一个注销的电话卡,测试的时候发现sim800c_send_cmd这个函数有问题。 
[mw_shl_code=c,true]u8 sim800c_send_cmd(u8 *cmd,u8 *ack,u16 waittime) 
{ 
        u8 res=0;  
        USART2_RX_STA=0; 
        printf("Ö′DDÃüáî...\r\ncmd:%s\r\nack:%s\r\nwaitime:%d\r\n",cmd,ack,waittime); 
         
        if((u32)cmd<=0XFF) 
        { 
                while((USART2->SR&0X40)==0);//μè′yéÏò»′Îêy¾Y·¢Ëííê3é   
                USART2->DR=(u32)cmd; 
        }else u2_printf("%s\r\n",cmd);//·¢ËíÃüáî 
        if(ack&&waittime)                //Dèòaμè′yó|′e 
        { 
                while(--waittime)        //μè′yμ1¼Æê± 
                {  
                        printf("waittime12:%d\r\n",waittime); 
                        delay_ms(10); 
                        printf("waittime13:%d\r\n",waittime); 
                        if(USART2_RX_STA&0X8000){//½óêÕμ½Æú′yμÄó|′e½á1û 
                                if(sim800c_check_cmd(ack))break;//μÃμ½óDD§êy¾Y  
                                USART2_RX_STA=0; 
                        } 
                } 
                printf("waittime:%d\r\n",waittime); 
                if(waittime==0)res=1;  
        } 
                 
        return res; 
} [/mw_shl_code] 
运行到while(--waittime)时只运行一次就完了,第二次到delay_ms就不运行,请问问题出在哪了? 
 |   
 
 
 
 
 
 |