【百问网】物联网学习笔记6
观察AT指令的规律,发现大部分指令,操作和返回都是一样的。
于是编写一个通用的函数,去实现发送操作指令。
对于其中特殊的指令,再单独编写程序去实现。
在这个项目里,和模块进行通信、模块接收和发送的都是字符串。
其实我们就是对字符串处理,因此要对操作字符串的函数熟悉。
使用的开发板实物图如下:
以下介绍几个常用的字符处理函数
这些函数的头文件 都是 #include <string.h>
第一个 strlen
用于计算指定字符串的长度
参数是字符串的首地址,以‘\0’结尾(计算结果不包含‘\0’)
返回值是unsigned int类型 非负整数
第二个 strcat
将参数2的字符串 连接 到参数1的尾部,‘\0’也会追加过去
也就是实现 拼接到 字符串尾部的效果
成功返回新字符串的首地址,也就是目标字符串(参数1)的首地址
失败返回NULL
第三个 strcat的升级版strncat
将参数2的字符串 前n个字符 连接 到参数1的尾部,‘\0’也会追加过去
成功返回新字符串的首地址,也就是目标字符串(参数1)的首地址
失败返回NULL
第四个 strcpy
把参数2所指向的字符串 复制到参数1 所指向的空间中,'\0'也会拷贝过去
也就是实现整体的复制
成功返回新字符串的首地址,也就是目标字符串(参数1)的首地址
失败返回NULL
注意目标字符串(参数1)的空间一定要够大
第五个 strcpy的升级版strncpy
把参数2所指向的字符串的前n个字符 复制到参数1 所指向的空间中
成功返回新字符串的首地址,也就是目标字符串(参数1)的首地址
失败返回NULL
第六个 strstr
在字符串1中查找字符串2出现的位置
成功返回字符串1第一次出现 字符串2 的地址
失败返回NULL
第七个 strchr
在参数1字符串中查找参数2 字符出现的位置
成功返回字符串1第一次出现 字符 的地址
失败返回NULL
第八个 strcmp
比较 参数1字符串 和 参数2字符串 是否一样(比较的是字符ASCII码大小)
返回值
相等(一样):0
大于:>0
小于:<0
第九个 strncmp
比较 参数1字符串 和 参数2字符串前n个 是否一样(比较的是字符ASCII码大小)
返回值
相等(一样):0
大于:>0
小于:<0
第十个 strtok
分解 参数1字符串 为一组字符串,参数2为分隔符
成功返回分割后字符串首地址
失败返回NULL
补充一个 sprintf
头文件是 #include <stdio.h>
类似printf,把数据格式化后,写入参数1的地址 (printf是把数据格式化后串口打印)
成功返回实际格式化的字符个数
失败返回- 1
strcat是复制的字符串
sprintf可以复制字符串,还可以是整数、浮点数、小数等。只要是printf的能打印的效果,都能使用sprintf得到。
总结下来就是
10个 string.h里的函数
1个 stdio.h里的函数