做单片机通信时常常需要用到校验码,在不确定单片机校验输出结果正确与否的情况下我们不得不手工对报文进行计算并对比结果。手工计算有多麻烦笔者就不形容了。为此,为此,我制作了个校验码生成小工具,当前版本支BCC(Block Check Character/信息组校验码)实际上就是所有字节的异或校验、CS(模256校验)即,所有字节相加不考虑溢出、CRC16(循环冗余校验),代码及实现效果如下。
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace 校验码生成工具
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void bt_Click(object sender, EventArgs e)
{
byte[] intputBuf;
int result = 0; //输出结果
string intputStr = intputbox.Text; //得到输入的16进制序列
intputStr = intputStr.Replace(" ", ""); //去掉空格,如果存在
intputStr = intputStr.Replace("0x", ""); //去掉0x,如果存在
intputStr = intputStr.Replace("0X", ""); //去掉0X,如果存在
intputStr = intputStr.Replace(",", "");
intputStr = intputStr.Replace("H"<