//SIM900A读短信测试
void sim900a_sms_read(void)
{
u8 *p1,*p2,*p4;
u8 *p=(u8*)malloc(100);
u8 *s1,*s2;
sim900a_init(); //进行sim900a初始化工作
GPIO_ResetBits(GPIOE,GPIO_Pin_5); //LED0对应引脚GPIOB.5拉低,亮
while(1)
{
p1=(u8*)sim900a_check_cmd("+CMTI:");
if(p1) //是否收到短信提示
{ GPIO_ResetBits(GPIOB,GPIO_Pin_5); //LED0对应引脚GPIOB.5拉低,亮
// GPIO_ResetBits(GPIOB,GPIO_Pin_5); //LED0对应引脚GPIOB.5拉低,亮
p2=(u8*)strstr((const char*)(p1),",");
p4=(u8*)strstr((const char*)(p2+1),"
");
p4[0]=0;
sprintf((char*)p,"AT+CMGR=%s
",p2+1);
if(sim900a_send_cmd(p,"+CMGR:",200)==0) //读取短信,是否读取短信成功
{
s1=(u8*)strstr((const char*)(USART3_RX_BUF),"
");//直接读取短信的内容
s2=s1+2; //s2指向接收到短信内容;
if(strstr((const char*)(s2),"open")) //短信内容是否为“open”,如果是则开始发送短信
{
delay_ms(10);
sim900a_sms_send();
}
}
}
}
}
上面代码,在仿真可以通过,但是连接sim900a的时候程序运行到 p1=(u8*)sim900a_check_cmd("+CMTI:");下面就进不去了,求大神看看
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>