QQ登录

只需一步,快速开始

上位机MFC串口通讯CRC校验码计算源代码

[ 复制链接 ]

上位机MFC串口通讯CRC校验码计算源代码

上位机MFC串口通讯CRC校验码计算源代码

串口通讯中,其校验码计算是必不可少的一项功能。
校验码的计算类型有非常多。
LRC,CRC等等。
crc也可以细分很多不同的计算方式。
这里分享16位和32位的crc计算源代码。
效果如上图
在编辑框输入数据后,可以点击计算按钮。
会将计算的三种不同类型校验码结果显示出来。
例程中是通过自己编写一个集成类,将相关算法集成在了类里。
关键代码为:

  1. /*******************************************************************/
  2. /*
  3.         函 数 名 称:        RunCRC16
  4.         功 能 描 述:        执行对数据段的CRC16循环冗余校验
  5.         参 数 说 明:        aData[in]:待校验数据
  6.                                         aSize[in]:待校验数据长度
  7.                                         aPoly[in]:创建表所需要的多项式
  8.                                        
  9.           返回值 说明:        循环冗余校验结果

  10. /*******************************************************************/
  11. unsigned short CCRC::RunCRC16( const  char * aData, unsigned long aSize, unsigned short aPoly )
  12. {
  13.     unsigned long Table_CRC[256]; // CRC 表
  14.     unsigned long  i;
  15.     unsigned short nAccum = 0;

  16.         BuildTable16( aPoly, Table_CRC );
  17.    
  18.     for ( i = 0; i < aSize; i++ )
  19.         nAccum = ( nAccum << 8 ) ^ ( unsigned short )Table_CRC[( nAccum >> 8 ) ^ *aData++];
  20.     return nAccum;
  21. }





  22. /*******************************************************************/
  23. /*
  24.         函 数 名 称:        RunCRC32
  25.         功 能 描 述:        执行对数据段的CRC32循环冗余校验
  26.         参 数 说 明:        aData[in]:待校验数据
  27.                                         aSize[in]:待校验数据长度
  28.                                         aPoly[in]:创建表所需要的多项式
  29.                                        
  30.           返回值 说明:        循环冗余校验结果

  31. /*******************************************************************/
  32. unsigned long CCRC::RunCRC32( const  char * aData, unsigned long aSize, unsigned long aPoly )
  33. {
  34.     unsigned long Table_CRC[256]; // CRC 表
  35.     unsigned long i;
  36.     unsigned long nAccum = 0;

  37.         BuildTable32( aPoly, Table_CRC );
  38.    
  39.     for ( i = 0; i < aSize; i++ )
  40.         nAccum = ( nAccum << 8 ) ^ Table_CRC[( nAccum >> 24 ) ^ *aData++];
  41.     return nAccum;
  42. }
复制代码
源代码下载:
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:上位机MFC串口通讯CRC校验码计算源代码.rar 
文件大小:30.55 KB  售价:1金币
下载权限: 不限 以上或 VIP会员   [购买捐助会员]   [充值积分]   有问题联系我

  

上位机VC MFC程序开发精典实例大全源码与视频讲解配套下载408例

  

经历1年的编程与录制点击进入查看


  

halcon从自学到接项目视频教程,另外再赠送全网最全资源  

  

欢迎围观我录制的一套halcon自学视频教程(进入)


  

如果您认可,可联系功能定制!

  

如果您着急,充值会员可直接联系发您资料!

  

QQ联系我

微信扫扫联系我

  


回复

使用道具 举报

快速回复 返回列表 客服中心 搜索