C# 串口CRC CCITT-FALSE 校验

2023-10-28

串口CRC CCITT-FALSE 校验

        public static bool CRC16_CCITT_FALSE(byte[] byteData)  //C# crc-16/CCITT-FALSE,带判断校验的
        {
            bool flag = false;
            ushort crc = 0xFFFF;
            int size = byteData.Length-2;  //计算待计算的数据长度
            int i = 0;

            if (size > 0)
            {
                while (size-- > 0)
                {
                    crc = (ushort)((crc >> 8) | (crc << 8));
                    crc ^= byteData[i++];
                    crc ^= (ushort)(((byte)crc) >> 4);
                    crc ^= (ushort)(crc << 12);
                    crc ^= (ushort)((crc & 0xff) << 5);
                }
            }
            if (byteData[byteData.Length-1] == (byte)((crc >> 8) & 0xff) 
                && byteData[byteData.Length - 2] == (byte)(crc & 0xff))
            {
                flag = true;
            }
            return flag;
        }

调用

            byte[] QueryInfoByte 
                = new byte[] { 0xE1, 0xAB, 0xE1, 0x01, 0x02, 0x00, 0x00, 0x04, 0x2E, 0x0B, 0x00, 0xFF, 0x99, 0x31 };
            if (CRC16_CCITT_FALSE(QueryInfoByte))
            {
                //你的代码
            }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 串口CRC CCITT-FALSE 校验 的相关文章

  • windows下串口初步编程(多线程+windows串口)

    环境 win10操作系统 编程环境 Eclipse Cygwin GCC编译器 串口环境 串口调试助手v2 1 虚拟串口助手 Virtual Serial Port Driver 7 2 过程 1 在Eclipse环境下新建一个C 工程 并
  • STM32L051测试 (五、串口测试 — 与Enocean模块通讯问题)

    STM32L051测试 第五课 串口的使用 by 矜辰所致 添加目录栏目 2021 9 30 调整文章格式 增加串口接收卡死处理说明 2022 7 18 目录 前言 一 串口接收处理的几种方式 1 1 串口接收发送不定长度的数据 非DMA方
  • 初次使用QT5串口类QSerialPort

    因为工作需要 现在正在学习Qt的串口通信 Qt4的话需要使用第三方类 使用起来也非常简单 只需要把对应的文件添加到自己的项目中就可以了 我参考的是Qt论坛上的demo 刘大师和yafei的demo都非常详细 网上都可以下载到 不过 Qt5添
  • STM32 进阶教程 15 - 串口DMA收发

    前言 串口操作相信大家一定很熟悉 如果你已经会串口的收发数据 并可以灵活使用轮询及中断方式对串口进行数据收发 那么恭喜你 学完本节内容后 也将可以学会串口的更高级操作方式 DMA方式 DMA操作串口可以大大减轻MCU的负担 同时也可以加快数
  • STM32串口结构体、库函数、串口发送字符(串)、重定向printf串口发送、串口中断接收控制灯、接收不定长数据、DMA

    参考 串口的结构体 重定向printf串口发送stm32等博文 作者 点灯小哥 发布时间 2021 03 06 21 46 33 网址 https blog csdn net weixin 46016743 article details
  • python 使用线程接收串口数据,并同时可进行串口数据发送。提供python 串口通讯助手的源码下载

    有关python 串口通讯助手的源码下载 请打开这篇文章 https blog csdn net xiaoeleis article details 105820455 python 使用线程接收串口数据 并同时可进行串口数据发送 问题 1
  • openwrt安装和使用minicom

    opkg list先看一下软件源里面有没有minicom包 有的话就直接安装 opkg install minicom 安装完后执行minicom v查看版本信息确认是否安装成功 安装完成后 把USB串口设备插入到路由器USB口 我用的是p
  • CH340 MAC驱动使用教程

    CH340 支持各类系统平台下使用 驱动的使用以及下载介绍可以参见我的其他博客 CH340 驱动 含各平台 这一篇文章主要介绍CH340 在 MAC 以及各类 Arduino 平台的安装使用流程 首先到沁恒官网下载最新的CH340驱动 这里
  • 关于使用STM32CubeMx配置串口出现的一些问题

    一 使用CubeMX配置好串口中断的工程 打开工程添加相关代码后串口没有数据输出或者看不见数据但串口助手的RX会一直增加的问题 参考 这里 大概意思就是时钟的原因 需要把stm32f4xx hal conf h文件中的时钟改一下 将25MH
  • C++ C#自动获得特定串口 获得串口列表

    目的 自动获得特定串口 0 C 自动获得特定串口 读设备管理器 计算机管理 串口列表 PrintDeviceInfo cpp 定义控制台应用程序的入口点 include
  • 树莓派4b串口设置教程(适用于新手)

    树莓派4b串口设置教程 适用于新手 树莓派4b串口配置 适用于新手 本人也是刚刚学习了树莓派 考虑到目前入坑的像我一样的小白比较多 所以我整理了一下前辈们的各种经验 准备针对树莓派4b这款最新的产品 做一个比较详细简单的串口配置介绍 1 基
  • Python Serial串口的简单数据收发

    导入模块 注意这里模块名是pyserial pip install pyserial 1 打开串口 import serial com serial Serial COM3 9600 print com 2 发送数据 import seri
  • QT实现串口打开和关闭

    一 查找串口 windows 下面这个循环语句用来查找可以用的串口端口 不确定有多少串口可用 也就不知道循环多少次 所以用foreach 不知道用的就百度 foreach const QSerialPortInfo info QSerial
  • GD32的项目源码从台式机拷贝到笔记本,烧录后串口数据异常

    目录 1 问题描述 2 故障排查 3 问题分析 4 问题总结 1 问题描述 最近一个项目 需要外场调试 将台式机的源代码拷贝到笔记本中 通过笔记本烧录程序到设备中 发现串口数据异常 重新使用台式机进行烧录 则设备输出正常 2 故障排查 由于
  • STM32通过ESP8266利用机智云平台实现手机远程操作

    STM32通过ESP8266利用机智云平台实现手机远程操作 将STM32作为主控芯片 ESP8266作为外设 利用串口传递信息 通过机智云平台实现STM32与手机之间的数据传输 之所以选择机智云平台 是因为机智云平台相关配套的软件工具非常齐
  • 神奇的python(六)之python的串口操作(pyserial)

    简介 最近项目突然要使用python串口操作 这不 查资料 翻文档 是时候写一份串口操作的简要用法 以后有时间可以使用pyqt再写个界面 弄个串口调试终端 1 安装pyserial库 pip install pyserial 2 pyser
  • 使用HAL库开发STM32:UART进阶使用

    文章目录 目的 发送处理 存在的问题 解决方法 个人常用处理方式 数据接收与解析 数据接收 数据解析 对于HAL库的吐槽 总结 目的 在前面文章 使用HAL库开发STM32 UART基础使用 中介绍的UART的基础使用 基础使用非常简单 不
  • CUBEMX+HAL库实现STM32串口(不定长度)收发

    CUBEMX HAL库实现STM32串口接收 不定长度 并发送 首先新建一个CUBEMX工程 选择你自己开发板的芯片型号 设置时钟和串口 设置时钟为72MHZ 设置串口中断 点击小齿轮生成KEIL5的工程 设置工程名称及存放位置 点击Ope
  • 串行接口的工作原理和实现

    串口的结构和工作原理 通用异步收发传输器 Universal Asynchronous Receiver Transmitter 通常称作UART 它将要传输的资料在串行通信与并行通信之间加以转换 作为把并行输入信号转成串行输出信号的芯片
  • 问题解决——使用串口调试助手发送控制字符 协议指令 <ESC>!?

    问题解决 使用串口调试助手发送控制字符 协议指令 参考文章 1 问题解决 使用串口调试助手发送控制字符 协议指令 2 https www cnblogs com wlsandwho p 4202094 html 备忘一下

随机推荐

  • 关于exe文件无法执行的解决方式小结

    昨天学习时候用到Apache 下载安装之后 用对应的exe文件无法打开 服务器一直打不开 我就好奇怎么样才能解决这个问题 先在网上百度了一些方法 通过修改注册表方式 步骤如下 新建记事本 将下面这段代码保存进去 然后另存为将其修改为恢复可执
  • ovs tag

    ovs tag 下发正常转发流表 sh ovs ofctl add flow s1 action normal action NORMAL的流表意思是该交换机配置成一个正常传统交换机工作 ovs交换机有两种工作模式 SDN模式和传统模式 传
  • python assert用法

    1 assert语句用来声明某个条件是真的 2 如果你非常确信某个你使用的列表中至少有一个元素 而你想要检验这一点 并且在它非真的时候引发一个错误 那么assert语句是应用在这种情形下的理想语句 3 当assert语句失败的时候 会引发一
  • Qt学习笔记——界面文件的使用

    一 界面文件的使用 1 独立的ui文件 使用uic命令把ui文件编译成 h文件 uic xxx ui o xxx h 2 在集成开发环境中使用 1 Qt构造器会把xxx ui文件生成 ui xxx h 文件 且会有一个xxx h xxx c
  • (转载)STM32与LAN9252构建EtherCAT从站

    目录 一 项目简介 EtherCAT及项目简述 LAN9252工作模式 整体开发流程 移植要处理的问题 代码层面的工作 开发中使用的工具 二 SSC的使用 SSC简介和下载 SSC构建协议栈文件和XML 三 LAN9252的XML文件 Et
  • postgresql常用函数>序列函数nextval():设置主键自动增长

    主键一般设置为Integer类型 并且自动增长 起始值为1 增量为1 有两种方法 法一 在建表时 nextval 表名 主键 seq regclass 法二 如果表已经建好 CREATE SEQUENCE 表名 主键 seq START W
  • anaconda jupyter-notebook

    文章目录 仓库镜像配置 新建python 环境 jupyter notebook 仓库镜像配置 conda config add channels https mirrors tuna tsinghua edu cn anaconda pk
  • 程序员必备的25个好网站汇总

    一 技术提升 0 GitHub 程序员托管代码的平台 很多开发者都会在上面找各种各样的开源项目来学习 阿里 腾讯 字节跳动 美团 Google Micosoft等国内外大厂都有自己的Github开源库 1 StackOverflow 一个强
  • 蓝桥杯单片机学习日记4-串口接收与发送,解决串口引脚与按键引脚冲突

    此片文章用于记录蓝桥杯单片机的学习 串口的发送与接收较为简单 主要是字节和字符串的发送与接收 直接上程序 串口初始化 void UartInit void 9600bps 11 0592MHz SCON 0x50 8位数据 可变波特率 AU
  • MySQL数据库是非关系_MySQL(数据库)基础知识、关系型数据库yu非关系型数据库、连接认证...

    什么是数据库 数据库 Database 存储数据的仓库 高效地存储和处理数据的介质 介质主要是两种 磁盘和内存 数据库系统 DBS Database System 是一种虚拟系统 将多种内容关联起来的称呼 DBS DBMS DB DBMS
  • 汇编语言(王爽)第四版学习1

    第一章 机器语言 0 1 简单语句 mov ax bx 汇编语言组成 1 汇编指令 机器码的助记符 有对应的机器码 2 伪指令 没有对应的机器码 由编译器执行 计算机并不执行 3 其他符号 如 等 由编译器识别 没有对应的机器码 存储器 内
  • SpringCloud微服务---Nacos配置中心

    1 Nacos Config 服务配置 1 1 服务配置中心介绍 首先我们来看一下 微服务架构下关于配置文件的一些问题 1 配置文件相对分散 在一个微服务架构下 配置文件会随着微服务的增多变的越来越多 而且分散在各个微服务中 不好统一配置和
  • 007 数据结构_堆——“C”

    前言 本文将会向您介绍关于堆Heap的实现 具体步骤 tips 本文具体步骤的顺序并不是源代码的顺序 typedef int HPDataType typedef struct Heap HPDataType a int size int
  • 04Python爬虫:retrying模块

    代码 结果 None 转载于 https www cnblogs com jumpkin1122 p 11521013 html
  • 勇担重任从不放弃——一个阿里P7的内部求职故事

    Java开发程序员在互联网行业中名声在外 同时也意味着竞争特别激烈 当然 在众多从业者中 并不是每个人都可以经历从Java外包到成为阿里P7这样的成功故事 不过 这个同志通过自己坚定的信仰和勤奋的努力 不仅完成了自己的进步增值 而且分享了成
  • 泰勒图(Taylor Diagrams)和常用模型评价指标小结

    文章内容仅用于自己知识学习和分享 如有侵权 还请联系并删除 一 泰勒图 1 原理 1 1 定义 泰勒图 Taylor diagram 可以简单的理解为一种的可同时展示相关系数 their correlation 中心均方根误差 their
  • win11上的虚拟机安装Ubuntu 16.04和基础环境配置教程

    1 安装 VM 17 win11最好装VM16以后的 2 下载 ubuntu 的iso文件 可以在国内的镜像站下载更快 如下是阿里云的镜像站ubuntu 16 04 网址 https mirrors aliyun com oldubuntu
  • LeetCode 37 把数组排成最小的数

    示例 1 输入 10 2 输出 102 示例 2 输入 3 30 34 5 9 输出 3033459 提示 0 lt nums length lt 100 解题思路 此题求拼接起来的最小数字 本质上是一个排序问题 设数组 nums 中任意两
  • 利用Hu不变矩进行特征提取

    include stdafx h include
  • C# 串口CRC CCITT-FALSE 校验

    串口CRC CCITT FALSE 校验 public static bool CRC16 CCITT FALSE byte byteData C crc 16 CCITT FALSE 带判断校验的 bool flag false usho