strstr函数的一个小应用

strstr(str1,str2) 函数用于判断字符串str2是否是str1的子串。如果是,则该函数返回str2在str1中首次出现的地址;否则,返回NULL。(百度百科的解释),

这个函数在string.h这个头文件里,这个函数是我在使用SIM7600CE模块时发现的,这个4G模块用AT命令来进行控制的,比如你发送AT,模块会返回OK,表示模块准备好了,如果返回ERROR,那么表示模块没准备好。不同的命令,模块会做出不同的回应。

这个时候问题就来了,我该怎么去判断模块返回的信息是我想要的回应呢,因为模块会将你的命令及它的回答一起返回给你,有些命令的回复很长,这样你想要的应答在接收缓存区的位置是不固定的,所以判断起来有些麻烦,这时候我就找到了strstr这个函数

u8 SIM7600CE_check_cmd(u8 *str)
{
char *strx;

strx=strstr((const char*)USART3_RX_BUF,(const char*)str);
if(strx)
return 1;
else
{
return 0;
}
}

这是我使用SIM7600CE模块时的一个小函数,这里USART3_RX_BUF就是我接收模块应答的缓存区,后面u8*str 就是我存放我想要得到的应答的数组。通过这个函数我可以在USART3_RX_BUF这里面寻找,是否有我想要的应答消息。比如我发送AT+CPSI?查询当前SIM卡的网络注册信息,我想知道他注册的是2G网络还是3G网络还是4G网络,是移动还是联通还是电信呢,这时我就可以通过在USART3_RX_BUF中搜索 想对应的应答 ,比如移动的2G、3G、4G分别是GSM TD-SCDMA TD-LTE。我只需要通过查询这些关键的单词就可以来判断,不需要去分析模块返回的一堆信息。

注:本人刚毕业的一个小菜鸟 写这样的文章目的主要在于自己的积累。可能问题非常简单,甚至为常识问题。让大家见笑了,如果哪位博友无意中看到我的这个文章,如果那里有讲错,或者有好的补充,烦劳你在下面评论留言给我,先就此谢过。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值