嵌入式linux编程过成中模块从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数(提取特定字符串+字符串转16进制)
嵌入式linux编程过成中用到zigbee模块
zigbee从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数
(提取特定字符串+字符串转16进制)
#include<stdio.h>
#include<stdlib.h>
#include<cstring>
#include<string.h>int serchzig(char *rdbuf,unsigned char *wtbuf)
{char *beginbuf = NULL;char *endbuf = NULL;char midbuf[100]={0};char str[4]={0};
//将主函数传入的buffer数组中fe~ff提取到midbuf中beginbuf = strstr(rdbuf,"fe");endbuf = strstr(rdbuf,"ff");if(beginbuf == NULL || endbuf == NULL || beginbuf > endbuf){printf("not found zigbee cmd!\n");}else{endbuf += strlen("ff");strncpy(midbuf,beginbuf,endbuf-beginbuf);}printf("%s\n",midbuf);
//将midbuf中的字符每两个数组元素(即两个字符)转换为一个16进制数,并存入wtbuf[i]中。int len = strlen(midbuf);printf("%d\n",len);//midbuf[len+1]='\0';//printf("%d\n",len);memset(str,0,sizeof(str));int i = 0;int j = 0;for(j=0;j < len;j += 2){strncpy(str,midbuf+j,2);//memcpy(str,midbuf+j,2);printf("str = %s\t",str);wtbuf[i] = strtol(str,NULL,16);printf("wtbuf[i] = 0x%02x\t i= %d\n",wtbuf[i],i);memset(str,0,sizeof(str));i++;}return 0;}int main()
{char buffer[100]={"hellow zigbee fe1985ffdf"};//定义一个字符数组,并赋值unsigned char zigbee[100]={0};//无符号数组/也可定义为char,否则打印可能出现6个f,是printf补码的问题,//char *beginbuf = NULL;//char *endbuf = NULL;//char buff[100] = {0};serchzig(buffer,zigbee);//调用函数,输出的zigbee数组已经是转换好的数组printf("%s\n",zigbee);printf("%x\n",zigbee[0]);printf("%x\n",zigbee[1]);printf("%x\n",zigbee[2]);printf("%x\n",zigbee[3]);printf("%x\n",zigbee[4]);return 0;
}
运行结果:vc运行的。arm-linux还结合了串口,程序不能通用就用vc专门编写了一个例子
嵌入式linux编程过成中模块从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数(提取特定字符串+字符串转16进制)相关推荐
- linux 串口 字符 间隔,嵌入式linux编程过成中模块从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数(提取特定字符串+字符串转16进制)...
嵌入式linux编程过成中用到zigbee模块 zigbee从串口读数需要特定的字符段并且需要每两位字符数组元素转换成一个16进制数 (提取特定字符串+字符串转16进制) #include #incl ...
- java中循环右移两位_1008 数组元素循环右移问题 (20分)【java题解】
剑指offer第56题 数组中数字出现的次数(位运算) 剑指offer第56题 数组中数字出现的次数(位运算) 文章目录 问题一:两个只出现一次的数 问题描述: 解题思路: 代码实现: 问题二:一个只 ...
- 24.shell中list详解,定义list,获取List的总个数,获取list的某个元素值,将list的每个元素转换成以空格分隔的字符串,空格分隔的字符串转换成list,for循环list
文章目录 前言 定义list 获取List的总个数 获取list的某个元素值 将list的每个元素转换成以空格分隔的字符串 空格分隔的字符串转换成list for循环list 总结 友情链接 前言 s ...
- 嵌入式 Linux 编程
嵌入式 Linux 编程 嵌入式应用开发 嵌入式软件开发流程 什么是交叉编译 在一种平台上编译出能在另一种平台(体系结构不同)上运行的程序: 在PC 平台(X86) 上编译出能运行在ARM平台上的的程 ...
- arm linux udp 自发自收_嵌入式linux编程开发必备知识
嵌入式linux是嵌入式开发必不可少的一份子,在科技高速发展的今天,嵌入式已然已经成为了最热门的技术之一了.对于想要学习好嵌入式的学员来说,现在学习好linux是很有必要的,因为这个是嵌入式的核心.那 ...
- linux QT 结束当前进程_嵌入式linux编程开发必备知识
嵌入式linux是嵌入式开发必不可少的一份子,在科技高速发展的今天,嵌入式已然已经成为了最热门的技术之一了.对于想要学习好嵌入式的学员来说,现在学习好linux是很有必要的,因为这个是嵌入式的核心.那 ...
- 嵌入式linux编程开发必备知识
嵌入式linux是嵌入式开发必不可少的一份子,在科技高速发展的今天,嵌入式已然已经成为了最热门的技术之一了.对于想要学习好嵌入式的学员来说,现在学习好linux是很有必要的,因为这个是嵌入式的核心.那 ...
- Linux学习之嵌入式Linux编程文件IO(C语言版)
Linux学习之嵌入式Linux编程文件IO(C语言版) 一.文件IO常用函数 1.open 2.write 3.read 示例代码: #include <sys/types.h> #in ...
- 用js正则判断输入的两位字符,第一位是数字16进制的,第二位是I、O、Q、U除外的字母(A到Z)
项目中遇到客户的需求变化,要验证某个数据的正确性,判断输入的两位字符,第一位是数字16进制的,第二位是I.O.Q.U除外的字母(A到Z). 本来对js不熟练,网上参考了一下js正则验证的规则,使用正则 ...
最新文章
- K - 老鼠走迷宫(DFS)
- 信息系统项目管理师-学习方法、重难点、10大知识领域笔记
- windows CMD窗口换个标题 title命令
- NormalMap 贴图 [转]
- mysql 查看集群状态_MySQL数据库集群正确配置步骤
- Java第五次作业--面向对象高级特性(抽象类和接口)
- python数据类型-----字典
- 将一个项目布到服务器上,怎么在云服务器上布项目
- typeorm mysql2_指南 - 使用 TypeORM 和 Express 的示例 - 《TypeORM v0.2.20 中文文档》 - 书栈网 · BookStack...
- Oracle查询对应表是否在使用,oracle 中查询当前用户可以看到的表名、表对应的所有字段...
- MaxCompute 图计算用户手册(下)
- linux删除一个目录下的所有空文件
- python 链表操作 优化_Python:如何修改列表时内存的使用和优化?
- 高手教你如何从零开始学游戏编程
- LM1875小功放电路解析与调校(出好声音)
- selenium不定位元素直接操作键盘之Keys.CONTROL
- java-php-python-ssm职工工资管理系统计算机毕业设计
- URI API——公交、驾车、步行导航
- 【量子力学】国际象棋与量子国际象棋Quantum Chess游戏规则
- openFeign夺命连环9问