C# 工业级 CRC16 校验完整实现(Modbus RTU 标准版)
C# 工业级 CRC16 校验完整实现Modbus RTU 标准版以下是工控上位机中最常用、最可靠的CRC16-Modbus实现表驱动法性能最高支持 byte[] 和 Span直接复制即可使用。1. CRC16 计算工具类推荐publicstaticclassCrc16{privatestaticreadonlyushort[]CrcTablenewushort[256]{0x0000,0xC0C1,0xC181,0x0140,0xC301,0x03C0,0x0280,0xC241,0xC601,0x06C0,0x0780,0xC741,0x0500,0xC5C1,0xC481,0x0440,0xCC01,0x0CC0,0x0D80,0xCD41,0x0F00,0xCFC1,0xCE81,0x0E40,0x0A00,0xCAC1,0xCB81,0x0B40,0xC901,0x09C0,0x0880,0xC841,0xD801,0x18C0,0x1980,0xD941,0x1B00,0xDBC1,0xDA81,0x1A40,0x1E00,0xDEC1,0xDF81,0x1F40,0xDD01,0x1DC0,0x1C80,0xDC41,0x1400,0xD4C1,0xD581,0x1540,0xD701,0x17C0,0x1680,0xD641,0xD201,0x12C0,0x1380,0xD341,0x1100,0xD1C1,0xD081,0x1040,0xF001,0x30C0,0x3180,0xF141,0x3300,0xF3C1,0xF281,0x3240,0x3600,0xF6C1,0xF781,0x3740,0xF501,0x35C0,0x3480,0xF441,0x3C00,0xFCC1,0xFD81,0x3D40,0xFF01,0x3FC0,0x3E80,0xFE41,0xFA01,0x3AC0,0x3B80,0xFB41,0x3900,0xF9C1,0xF881,0x3840,0x2800,0xE8C1,0xE981,0x2940,0xEB01,0x2BC0,0x2A80,0xEA41,0xEE01,0x2EC0,0x2F80,0xEF41,0x2D00,0xEDC1,0xEC81,0x2C40,0xE401,0x24C0,0x2580,0xE541,0x2700,0xE7C1,0xE681,0x2640,0x2200,0xE2C1,0xE381,0x2340,0xE101,0x21C0,0x2080,0xE041,0xA001,0x60C0,0x6180,0xA141,0x6300,0xA3C1,0xA281,0x6240,0x6600,0xA6C1,0xA781,0x6740,0xA501,0x65C0,0x6480,0xA441,0x6C00,0xACC1,0xAD81,0x6D40,0xAF01,0x6FC0,0x6E80,0xAE41,0xAA01,0x6AC0,0x6B80,0xAB41,0x6900,0xA9C1,0xA881,0x6840,0x7800,0xB8C1,0xB981,0x7940,0xBB01,0x7BC0,0x7A80,0xBA41,0xBE01,0x7EC0,0x7F80,0xBF41,0x7D00,0xBDC1,0xBC81,0x7C40,0xB401,0x74C0,0x7580,0xB541,0x7700,0xB7C1,0xB681,0x7640,0x7200,0xB2C1,0xB381,0x7340,0xB101,0x71C0,0x7080,0xB041,0x5000,0x90C1,0x9181,0x5140,0x9301,0x53C0,0x5280,0x9241,0x9601,0x56C0,0x5780,0x9741,0x5500,0x95C1,0x9481,0x5440,0x9C01,0x5CC0,0x5D80,0x9D41,0x5F00,0x9FC1,0x9E81,0x5E40,0x5A00,0x9AC1,0x9B81,0x5B40,0x9901,0x59C0,0x5880,0x9841,0x8801,0x48C0,0x4980,0x8941,0x4B00,0x8BC1,0x8A81,0x4A40,0x4E00,0x8EC1,0x8F81,0x4F40,0x8D01,0x4DC0,0x4C80,0x8C41,0x4400,0x84C1,0x8581,0x4540,0x8701,0x47C0,0x4680,0x8641,0x8201,0x42C0,0x4380,0x8341,0x4100,0x81C1,0x8081,0x4040};/// summary/// 计算 CRC16-Modbus标准版/// /summarypublicstaticushortCompute(ReadOnlySpanbytedata){ushortcrc0xFFFF;foreach(bytebindata){crc(ushort)((crc8)^CrcTable[(crc^b)0xFF]);}returncrc;}/// summary/// 计算并附加 CRC16返回完整帧/// /summarypublicstaticbyte[]AppendCrc(byte[]data){ushortcrcCompute(data);byte[]resultnewbyte[data.Length2];Array.Copy(data,result,data.Length);result[^2](byte)(crc0xFF);// 低字节在前result[^1](byte)(crc8);returnresult;}/// summary/// 验证接收帧的 CRC 是否正确/// /summarypublicstaticboolVerify(ReadOnlySpanbyteframe){if(frame.Length3)returnfalse;ushortcalculatedCompute(frame[..^2]);ushortreceived(ushort)((frame[^1]8)|frame[^2]);returncalculatedreceived;}}2. 使用示例Modbus RTU 发送与验证// 示例读保持寄存器功能码 03byte[]request{0x01,0x03,0x00,0x00,0x00,0x02};// 地址 1读 2 个寄存器byte[]frameCrc16.AppendCrc(request);// 发送serialPort.Write(frame,0,frame.Length);// 接收后验证byte[]responsenewbyte[9];// 假设返回 9 字节serialPort.Read(response,0,9);if(Crc16.Verify(response)){// CRC 正确继续解析数据ushortvalue(ushort)((response[3]8)|response[4]);}else{// CRC 错误丢弃或重发Console.WriteLine(CRC 校验失败);}3. 工业级使用建议性能表驱动法比位运算快 5–10 倍适合高频采集字节序Modbus CRC 低字节在前与上面代码一致集成方式建议封装到协议适配器类中统一调用AppendCrc和Verify测试工具Modbus Poll / 串口助手 CRC 计算器验证这个 CRC16 实现已在多个产线项目中稳定运行兼容 Modbus RTU、自定义串口协议等场景。如果需要继续补充以下内容请告诉我我直接给出最简代码CRC16 位运算版便于理解与 S7 协议结合的校验完整 Modbus RTU 帧收发封装异步串口 CRC 验证示例直接说需求我马上补充祝您通信稳定不丢包

相关新闻

前后端分离个性化电影推荐系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程

前后端分离个性化电影推荐系统系统|SpringBoot+Vue+MyBatis+MySQL完整源码+部署教程

系统架构设计### 摘要 随着互联网技术的快速发展,个性化推荐系统在影视娱乐领域的应用日益广泛。传统的电影推荐系统通常采用单一的内容推荐或协同过滤算法,难以满足用户多样化的需求。同时,前后端耦合的开发模式导致系统扩展性差、维护成本高…

2026/7/3 1:41:08 阅读更多 →
高校学生饮食推荐系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

高校学生饮食推荐系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】

系统架构设计### 摘要 随着高校学生规模的不断扩大,学生饮食健康问题日益受到关注。传统的高校食堂管理模式存在信息不对称、推荐不精准等问题,难以满足学生多样化的饮食需求。为优化学生饮食体验,提升食堂管理效率,开发一套基于智…

2026/7/3 22:30:56 阅读更多 →
面向太空应用的钙钛矿电池稳定性评估:从低地球轨道热环境到高空气球验证

面向太空应用的钙钛矿电池稳定性评估:从低地球轨道热环境到高空气球验证

钙钛矿太阳能电池因其高效率、轻量化以及出色的辐射耐受性,成为空间光伏领域备受关注的技术方向。然而,低地球轨道中的卫星每天经历约15次从极寒(-90C)到高温(80C)的剧烈热冲击,其温度变化速率(最高6.77C/分钟)远超地面IEC 61215标准(1.67C/分…

2026/5/17 7:10:22 阅读更多 →

最新新闻

如何3步完成iOS激活锁绕过:面向A9-A11设备的完整指南

如何3步完成iOS激活锁绕过:面向A9-A11设备的完整指南

如何3步完成iOS激活锁绕过:面向A9-A11设备的完整指南 【免费下载链接】applera1n icloud bypass for ios 15-16 项目地址: https://gitcode.com/gh_mirrors/ap/applera1n 你是否曾遇到过这样的情况:购买二手iPhone后却卡在激活锁界面无法使用&…

2026/7/4 12:39:05 阅读更多 →
Android ML Kit人脸比对技术实现与优化

Android ML Kit人脸比对技术实现与优化

1. Android ML Kit 人脸比对技术解析在移动应用开发中,人脸识别技术已经成为身份验证、社交互动等场景的核心功能。Google提供的ML Kit人脸识别API为开发者提供了便捷高效的解决方案。不同于传统的人脸比对方式(如直接比较像素值)&#xff0c…

2026/7/4 12:39:05 阅读更多 →
机器学习可观测性实战:构建数据-模型-业务三层健康保障体系

机器学习可观测性实战:构建数据-模型-业务三层健康保障体系

1. 项目概述:这不是一次模型训练,而是一场交付实战“From Notebook to Production: Running ML in the Real World (Part 4)”——光看标题,你可能以为这是某套系列教程的第四讲,讲点模型部署或API封装。但如果你真在一线做过三个…

2026/7/4 12:37:05 阅读更多 →
STM32与LP5812实现动态灯光控制方案

STM32与LP5812实现动态灯光控制方案

1. 项目背景与硬件选型解析 在嵌入式系统开发中,动态灯光效果已经成为提升用户交互体验的重要手段。这次我选择了STM32F429ZI作为主控芯片,搭配德州仪器的LP5812 RGB LED驱动器,构建了一套高灵活性的灯光控制系统。这个组合特别适合需要复杂灯…

2026/7/4 12:37:05 阅读更多 →
深度学习优化器对比实验:固定网络下6种optimizer性能全解析

深度学习优化器对比实验:固定网络下6种optimizer性能全解析

1. 项目概述:为什么同一个神经网络要换着 optimizer 跑? “Training the Same Neural Network with Different Optimizers”——这个标题看起来像一句实验课作业要求,但背后藏着深度学习实践中最常被忽视、却影响最深远的底层逻辑&#xff1a…

2026/7/4 12:37:05 阅读更多 →
OpenSSH私钥加密:bcrypt KDF原理、实现与安全实践

OpenSSH私钥加密:bcrypt KDF原理、实现与安全实践

1. 项目概述:bcrypt在OpenSSH密钥加密中的角色如果你用过OpenSSH,一定对ssh-keygen命令生成密钥时那个“Enter passphrase”的提示不陌生。这个“passphrase”就是用来加密你的私钥的。很多人可能以为这只是个简单的密码保护,但背后其实是一套…

2026/7/4 12:35:04 阅读更多 →

日新闻

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 发布:关键安全修复版本,多项问题得到解决

Memcached 1.6.43 正式发布,这是一个关键的安全修复版本,修复了多个方面的问题,还对部分功能进行了优化。 安全修复亮点 此次发布在安全修复上表现突出。binprot 避免了项目引用计数溢出,mcmc 因安全问题提升了上游版本号&#xf…

2026/7/4 0:04:29 阅读更多 →
终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案

终极指南:使用HMCL启动器跨平台畅玩Minecraft的完整解决方案 【免费下载链接】HMCL A Minecraft Launcher which is multi-functional, cross-platform and popular 项目地址: https://gitcode.com/gh_mirrors/hm/HMCL HMCL(Hello Minecraft! Lau…

2026/7/4 0:06:29 阅读更多 →
KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

KMX63与PIC18F66K40在嵌入式HMI中的硬件协同与低功耗设计

1. KMX63与PIC18F66K40的硬件协同架构解析KMX63作为一款三轴加速度计和磁力计组合传感器,与PIC18F66K40微控制器的搭配堪称嵌入式HMI开发的黄金组合。这套硬件组合的核心优势在于KMX63提供的高精度运动感知能力与PIC18F66K40强大的信号处理能力形成了完美互补。KMX6…

2026/7/4 0:06:29 阅读更多 →

周新闻

月新闻