中级会员
- 积分
- 251
- 金钱
- 251
- 注册时间
- 2016-9-9
- 在线时间
- 92 小时
|
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就不运行,请问问题出在哪了?
|
|