CRC-16/MODBUS 校验位计算
实验指令: 前23位表示 信息头 + 信息内容。24,25位是待计算的校验位。26位是结束码
7E 01 00 00 01 10 02 00 27 00 0C 00 02 00 00 00 00 00 50 00 3C 00 03 90 0B 0D
在线计算
代码实现
#include <stdio.h>
#include <Windows.h>UINT8 data[23] = { 0x7E, 0x01, 0x00, 0x00, 0x01, 0x10, 0x02, 0x00, 0x27, 0x00, 0x0C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x50, 0x00, 0x3C, 0x00, 0x03 };/*
* 函数名 :CRC16
* 描述 : 计算CRC16
* 输入 : ptr---数据,len---长度
* 输出 : 校验值
*/
UINT16 CRC16(UINT8 *ptr, UINT16 len)
{unsigned char i;unsigned short crc = 0xFFFF;if (len == 0) {len = 1;}while (len--) {crc ^= *ptr;for (i = 0; i<8; i++){if (crc & 1) {crc >>= 1;crc ^= 0xA001;} else {crc >>= 1;}}ptr++;}return(crc);
}int main()
{printf("%04x\n", CRC16(data, 23));getchar();
}
CRC-16/MODBUS 校验位计算相关推荐
- modbus协议crc校验c语言代码,MODBUS通信协议中CRC校验码的计算(C/C++)实现
错误检测的方法 错误校验(CRC)域占用两个字节,包含了一个16位的二进制值.CRC值由传输设备计算出来,然后附加到数据帧上,接收设备在接收数据时重新计算CRC值,然后与接收到的CRC域中的值进行比较 ...
- android中 IMEI和ICCID的校验位计算
我们都知道在android 中有IMEI和ICCID 这两项数据. 至于这两项数据的获取方式以及所表示的意思在此我就不写了.主要讲讲这两项数据最后一位的校验位如何计算的. IMEI共15位 最后一位是 ...
- led大屏按实际尺寸设计画面_P10户外LED电子大屏幕按16:9计算屏幕实际尺寸
P10户外 P10户外LED电子大屏幕按16:9计算屏幕实际尺寸 P10户外LED电子大屏幕16:9计算方法 1.按16:9计算LED显示屏120平方米的长和宽 16X*9X=120 144X2=12 ...
- crc错误 modbus poll_Modbus通讯错误检测方法
标准的Modbus串行网络采用两种错误检测方法.奇偶校验对每个字符都可用,帧检测(LRC和CRC)应用于整个消息.它们都是在消息发送前由主设备产生的,从设备在接收过程中检测每个字符和整个消息帧. 用户 ...
- crc错误 modbus poll_干货丨从Modbus开始说现场总线!
从Modbus开始说现场总线(一) PLC应用,在了解了硬件配置和逻辑编程之后,很大一部分工作就是处理现场通讯了.各式各样的现场总线,其实还是有一定的规律的.我们在现场最常见到的现场总线协议,恐怕就是 ...
- CRC循环冗余码及其详细计算
本文其实是B站教学视频的搬运:链接点击 文章目录 循环冗余校验码的定义 循环冗余校验码的特点 什么是模2运算 CRC码的计算 具体怎么校验 循环冗余校验码的定义 循环冗余校验码由信息码n位和校验码k位 ...
- 程序实现IMEI/MEID校验位计算
IMEI校验码算法: (1).将偶数位数字分别乘以2,分别计算个位数和十位数之和 (2).将奇数位数字相加,再加上上一步算得的值 (3).如果得出的数个位是0则校验位为0,否则为10减去个位数 如:3 ...
- IMEI/MEID校验位计算
转自:http://blog.csdn.net/fengyifei11228/article/details/45919797 IMEI是国际移动通讯设备识别号(International Mobil ...
- MATLAB实现CRC校验码的计算
循环冗余校验(cyclicredundancy check,CRC)对传输序列进行一次规定的除法操作,将除法操作的余数附加在传输信息的后面.在接收端,也对收到的数据做相同的除法.如果接收端除法得到的结 ...
最新文章
- R语言使用magick包的image_annotate函数在图片中添加文本标签信息、自定义文本标签内容的位置、色彩(Text annotations)
- python是c语言写的吗-python和C语言的差别
- Docker网络配置进阶
- 【今日头条】热文周榜、热搜榜
- J2ME_System.getProperty
- boost::log::sinks::unlocked_sink用法的测试程序
- 21天让你成为Horizon View高手—Day18:Windows操作系统优化
- 亚伦•斯沃茨:提升时间的品质
- 【转】DB2 常用命令
- 补码到底是个什么东西
- Android访问瓦片地图 费流量,瓦片地图服务在线资源访问总结
- CodeFores 665D Simple Subset(贪心)
- 【CentOS 7架构16】,限制user_agent#171226
- 基于QT的UDP测试工具
- [转载]Delta Lake、Iceberg 和 Hudi 三大开源数据湖不知道如何选?那是因为你没看这篇文章
- snort 轻量级入侵检测系统安装与使用
- 落魄前端,整理给自己的前端知识体系复习大纲(上篇,2w字)
- 给你一台大疆无人机,你能用来做点啥?(二)-----——倾斜摄影建模
- 最新------如何不通过AppStore,直接安装IOS应用程序 兼容最新版IOS系统
- 花嫁之容氏浅浅最后怎么样了_花嫁之容氏浅浅小说