• 求CRC校验和的低位和高位的两种方式


    方式1

        unsigned short shrCRCCheckSum = 0;  // 校验和
    1             char tstCRCChecksum[2];
    2             memcpy(tstCRCChecksum,&shrCRCCheckSum,2);    // shrCRCCheckSum:216D
    3             LOGI("=================>Test tstCRCChecksum[0] 低位 :%x",tstCRCChecksum[0]); // 6d
    4             LOGI("=================>Test tstCRCChecksum[1] 高位 :%x",tstCRCChecksum[1]); // 21

    方式2

        unsigned short shrCRCCheckSum = 0;  // 校验和
     1 /*
     2  * 方    法:substring()
     3  * 功    能:截取字符串
     4  * 参    数:char* ch :要转换的 字符串指针
     5  *      int pos   :截取的开始位置
     6  *      int length:截取字符的长度
     7  * 返回值:char* :结果字符串指针
     8  */
     9 char* substring(char* ch,int pos,int length)
    10 {
    11     char* pch=ch;
    12     //定义一个字符指针,指向传递进来的ch地址。
    13     char* subch=(char*)calloc(sizeof(char),length+1);
    14     //通过calloc来分配一个length长度的字符数组,返回的是字符指针。
    15     int i;
    16     //只有在C99下for循环中才可以声明变量,这里写在外面,提高兼容性。
    17     pch=pch+pos;
    18     //是pch指针指向pos位置。
    19     for(i=0;i<length;i++)
    20     {
    21         subch[i]=*(pch++);
    22         //循环遍历赋值数组。
    23     }
    24     subch[length]='';//加上字符串结束符。
    25 
    26     return subch;       //返回分配的字符数组地址。
    27 }
                //求[CRC校验和]
                sprintf(chrCRCCheckSum, "%04X", shrCRCCheckSum);  // shrCRCCheckSum:216D
                LOGI("=================>[CRC校验和] :%s",chrCRCCheckSum);
    
                // 求得高位CRC
                chrMSB = substring(chrCRCCheckSum,0,2);   //chrMSB的值是比如是6D
                char chrConverMSB;
                sscanf(chrMSB, "%x", &chrConverMSB);
                Cmd[134] = chrConverMSB;
                LOGI("=================>[高位CRC] Cmd[134] :%x",chrConverMSB);  // 21
    
                // 求得低位CRC
                chrLSB = substring(chrCRCCheckSum,2,2);
                char chrConvertLSB;
                sscanf(chrLSB, "%x", &chrConvertLSB);
                Cmd[2] = chrConvertLSB;
                LOGI("=================>[低位CRC] Cmd[2] :%x",chrConvertLSB);// 6d
  • 相关阅读:
    tensorflow目标检测API安装及测试
    转 fine-tuning (微调)
    在Keras中导入测试数据的方法
    转 Keras 保存与加载网络模型
    Keras预训练模型下载后保存路径
    软件工程----心得体会
    结对编程项目-四则运算
    PSP记录个人项目耗时情况
    代码复审
    代码规范
  • 原文地址:https://www.cnblogs.com/YangBinChina/p/4261880.html
Copyright © 2020-2023  润新知