Labview中CRC校验
2015-06-16 15:00
393 查看
CRC生成多项式G(x)= x^16 + x^15 + x^13 + 1 根据该多项式系数,就可以判断CRC值为16位两字节数。从bit0位 到 bit15位 ,可知系数为1010 0000 0000 0001,所以简记为OxAOO1。 //uc_p_Fst:校验的起始数据指针 //uc_p_End:指向校验结束数据的下一个数据的指针 //ui_CRC:初始数据(注意有些网上给出的程序习惯初始值为0 或初始值为0xffff,这两种情况下校验时的方向不同,前者校验位左移,后者右移,具体原因我也解释不清楚。) uint16 CheckCRC(uint8* uc_p_Fst,uint8* uc_p_End,uint16 ui_CRC) { uint16 ui_Reg,i; while(uc_p_Fst < uc_p_End) { ui_CRC = ui_CRC ^ (((uint16)(*uc_p_Fst))<<8); for(i=0;i<8;i++) { ui_Reg = ui_CRC & 0x8000; if(ui_Reg) { ui_CRC <<=1; //注意左移 ui_CRC = ui_CRC ^ 0xA001; // 这个地方就是用到不同的CRC生成多项式,做相应的修改 } else ui_CRC <<=1; } uc_p_Fst ++; } return(ui_CRC); }
相关文章推荐
- LabVIEW之调用含while循环的子VI
- 基于Arduino+LabVIEW的多路数据采集系统
- 基于Arduino+LabVIEW的串口控制LED亮灭
- 《Arduino与LabVIEW开发实战》-前言
- Labview密码破解
- 关于LabVIEW的波形图与波形图表
- LabVIEW-电子表格字符串中的分隔符
- labview 2011 程序框图 控件随局部变量移动
- 个人博客纪念开篇
- 采样点数与采样频率的区别
- VISA错误代码
- 浅析NI LabVIEW数据采集与处理信号的10大优势
- 基于LabVIEW的视觉软件平台提升机器视觉系统应用优势
- Labview操作串口-----------通过VISA驱动
- ADO Error: 0x80040E14
- labVIEW的变量和属性节点
- 如何用Labview开发WinCE触摸板程序
- Labview使用UDP通信的问题
- Labview使用数据库的问题
- labview动态注册事件