以前在战舰开发板上已经调试出来短信发送功能,最近把程序移植到F302上之后,其他功能正常,只有回发短信功能不正常,经过调试发现程序总是卡在发送SIM900A_send_cmd(p,">",100)==0这条语句进不去,不知道是什么情况。
/**********************************************************
** 函数名 : callnumber
** 功能描述: 提取出短信发信人的手机号码,并回发短信
** 输入参数: u8* text
** 输出参数: 无
***********************************************************/
void callnumber(u8* text)
{
u8 *p,i,number;
p=(u8*)strstr((const char*)(USART1_RX_BUF),"1");
for(i=0;i<20;i++)
{
if((*p>='0')&&(*p<='9'))
{
number=*p;
callnum=number;
p++;
}
else
{
//callnum='\0';
break;
}
}
sprintf((char*)p,"AT+CMGS=\"%s\"",callnum);
if(SIM900A_send_cmd(p,">",100)==0)
{
// USART2_printf("jinlaile");
printf("%s",p);
USART_SendData(USART1, 'A');
USART_SendData(USART1, 'B');
delay_ms(2000);
if(SIM900A_send_cmd((u8*)0X1A,"CMGS",1000)==0)
{
USART2_printf("·????ê??");
}
}
USART1_RX_STA=0;
}
|