我要判断短信来了,怎么判断

2019-10-15 21:30发布

p1=(u8*)sim900a_check_cmd("+CMTI:");
          delay_ms(1000);
          printf("%s",p1);   ///调试
          
    if(p1)                                      //是否收到短信提示
这样子写有问题吗?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
苗苗猴
1楼-- · 2019-10-16 00:44
我想问问上面的方法行不行或者有没有更好的方法
火透
2楼-- · 2019-10-16 04:31
 精彩回答 2  元偷偷看……
苗苗猴
3楼-- · 2019-10-16 08:44
火透 发表于 2016-12-21 21:01
行。不是调试版本直接可以写成if(sim900a_check_cmd("+CMTI:"))

这样写,用串口调试没问题,可是烧进去就不能执行下去了,p1里面是乱码
正点原子
4楼-- · 2019-10-16 14:22
函数返回值是什么?
苗苗猴
5楼-- · 2019-10-16 19:50
正点原子 发表于 2016-12-25 23:35
函数返回值是什么?

//sim900a发送命令后,检测接收到的应答
//str:期待的应答结果
//返回值:0,没有得到期待的应答结果
//    其他,期待应答结果的位置(str的位置)
u8* sim900a_check_cmd(u8 *str)
{
        char *strx=0;
        if(USART3_RX_STA&0X8000)                //接收到一次数据了
        {
                USART3_RX_BUF[USART3_RX_STA&0X7FFF]=0;//添加结束符
                strx=strstr((const char*)USART3_RX_BUF,(const char*)str);
        }
        return (u8*)strx;
}
是您写的这个函数
正点原子
6楼-- · 2019-10-16 22:56
苗苗猴 发表于 2016-12-27 14:12
//sim900a发送命令后,检测接收到的应答
//str:期待的应答结果
//返回值:0,没有得到期待的应答结果

那你测试呢?

一周热门 更多>