有一个全局数组global用来接受由串口发来的数据,接受的数据为以下形式:
+RES:0000000064000000jkljsfajandsjkhflksajieuoiwhnhsdfiaujwjeo第一桢其中00000000为地址偏移量64000000为长度都为16进制的
+RES:6400000064000000weuqiojunfasiuoewnhajfkdajlsajfdsjlaskjei第二桢

程序要求首先识别出+RES是要接受的数据然后根据后面的两个值来判断一桢的数据,如果是一桢数据就发任意一个动作
如果不是就忽略继续向下查找,如果长度部分为00000000就结束查找

解决方案 »

  1.   

    从字符串中提取子字符串应该会吧。
    提取出16进制字符串后使用strtol或者sscanf转成数字,
    再用于计算。
      

  2.   

    >>然后根据后面的两个值来判断一桢的
     怎么确定一桢,判断的规则是什么?
      

  3.   

    1 同步
    测试 数组头 判断是否是 "+Res"
    2 同步成功,获取接下来的8个字符,转成16进制数 得到偏移地址
    3 获取接下来的8个字符,转成16进制数,得到数据长度
    4 如果数据长度不为0开始获取数据 ,否则结束。以上简单整理了一下 处理串的流程,代码应该比较容易 
      

  4.   

    楼主很强大
    好吧,我们来点简单的
    首先,假定收到了一串串口数据,存于大小属性为BYTE的数组
    然后现在数组里就是一堆待判断的数了,暂不管字串什么的,直接当做解一道初中数学题,判断一下是什么情况,就OK了